代码之家  ›  专栏  ›  技术社区  ›  JohnBigs

对于没有与另一个表连接的记录,如何获得连接结果?

  •  0
  • JohnBigs  · 技术社区  · 5 年前

    我有一个疑问:

    SELECT suppliers.id, count(*) 
    FROM suppliers
    INNER JOIN supplier_addresses 
    ON suppliers.id = supplier_addresses.supplier_id 
    GROUP BY suppliers.id;
    

    我想在结果中看到0个地址的计数…例如:

    supplier.id | count(*)
    1             3
    2             0
    3             1
    4             9
    

    在我的查询中,我没有看到第二条记录。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Juan Carlos Oropeza    5 年前

    使用 LEFT JOIN

    SELECT suppliers.id, count(supplier_addresses.supplier_id ) 
    FROM suppliers
    LEFT JOIN supplier_addresses 
    ON suppliers.id = supplier_addresses.supplier_id 
    GROUP BY suppliers.id;