我有两张桌子。
TABLE_A
| SURNAME | COL_X |TABLE_B
| ID | COL_Y |COL_X可以映射到表B中的ID列,我需要来自COL_Y的值。
下面的查询工作正常,除非COL_X在TABLE_A中有一个空值。我想把这些行包括进去。我该怎么做?
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
INNER JOIN TABLE_B b
ON a.COL_X = b.ID我尝试了以下查询,但它返回重复的行,因此不能使用。
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
INNER JOIN TABLE_B b
ON a.COL_X = b.ID or a.COL_X IS NULL发布于 2015-11-25 12:16:30
您已经尝试使用一个内部联接,它显示两个表中的所有行。您可能可以使用左联接来执行您期望的操作:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID发布于 2015-11-25 12:14:59
只需使用LEFT JOIN而不是INNER JOIN
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID发布于 2015-11-25 12:17:42
你应该尝试一个外部连接,例如-
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
RIGHT OUTER JOIN TABLE_B b
ON a.COL_X = b.ID or a.COL_X IS NULLhttps://stackoverflow.com/questions/33916170
复制相似问题