2

我有一个这样的查询:

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 时,它不会显示。请帮助我更正此查询。如果该 ID 的“customer_group_id”字段不为 NULL,则会显示。

4

1 回答 1

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 将始终从第一个表返回行,但如果没有连接行,则连接表的列中将出现空值。

于 2013-07-27T15:52:32.443 回答