我有这样的查询:
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,它将显示。
答案 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将位于连接表的列中。