我有两张桌子。
TABLE_A
| SURNAME | COL_X |
表-B
| ID | COL_Y |
COL_X可以映射到表B中的ID列,我需要COL_Y中的值。
以下查询正常工作,除非TABLE_A中的COL_X具有NULL值。我想包括那些行。我该怎么做?
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
答案 0 :(得分:1)
只需使用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
答案 1 :(得分:1)
您已尝试使用内部联接,该联接显示两个表中的所有行。你可以使用左连接来做你期望的事情:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
答案 2 :(得分:1)
您应该尝试外连接,例如 -
localhost:~ sorins$ which python
/usr/local/bin/python
python -m pip install --user --upgrade matplotlib
答案 3 :(得分:1)
这些行在tableB中没有共同作用。查询很简单:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
阅读本文,了解有关加入的更多信息:SQL JOIN and different types of JOINs