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 は常に最初のテーブルから行を返しますが、結合された行がない場合は、結合されたテーブルの列に null が含まれます。

于 2013-07-27T15:52:32.443 に答える