在场上获得结果甚至为空

时间:2013-07-27 15:49:58

标签: mysql

我有这样的查询:

SELECT * FROM customer AS c, customer_group AS cg 
WHERE c.customer_id = '10002' AND c.customer_group_id = cg.customer_group_id

当数据库中的该ID(10002)的'customer_group_id'字段为NULL时,它将不会显示。请帮我纠正这个问题。如果'customer_group_id'字段对于该ID不是NULL,它将显示。

1 个答案:

答案 0 :(得分:3)

使用左连接:

SELECT *
FROM customer AS c
LEFT JOIN customer_group AS cg
    ON c.customer_group_id = cg.customer_group_id
WHERE c.customer_id = '10002'

用于连接表的语法(近20年前被取代)实际上是一个INNER JOIN,要求将第一个表中的行连接起来被退回。

LEFT JOIN将始终返回第一个表中的行,但如果没有连接的行,则null将位于连接表的列中。