Sql Oracle JOIN ON colA=colB:如何包含colA中的空行
我有两张桌子 表ASql Oracle JOIN ON colA=colB:如何包含colA中的空行,sql,oracle,Sql,Oracle,我有两张桌子 表A | SURNAME | COL_X | 表B | ID | COL_Y | COL_X可以映射到表B中的ID列,我需要COL_Y中的值 下面的查询工作正常,除非表A中的COL_X具有空值。我想包括这些行。我该怎么做 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_
| SURNAME | COL_X |
表B
| ID | COL_Y |
COL_X可以映射到表B中的ID列,我需要COL_Y中的值
下面的查询工作正常,除非表A中的COL_X具有空值。我想包括这些行。我该怎么做
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
只需使用
左连接
而不是内部连接
:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
只需使用
左连接
而不是内部连接
:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
您已尝试使用显示两个表中所有行的内部联接。您可能可以使用left join来完成预期的操作:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
您已尝试使用显示两个表中所有行的内部联接。您可能可以使用left join来完成预期的操作:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
您应该尝试外部联接,例如-
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 NULL
您应该尝试外部联接,例如-
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 NULL
这些行在表B中没有共同响应。查询很简单:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
有关联接的更多信息,请阅读此链接:这些行在表B中没有共同响应。查询很简单:
SELECT a.SURNAME, b.COL_Y
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.COL_X = b.ID
阅读本文了解有关联接的更多信息:可能需要使用左联接而不是内部联接?只需使用
左联接
而不是内部联接
。阅读此文,您可能需要使用左连接而不是内部连接?只需使用左连接
而不是内部连接
。读这篇文章,你是对的。你的解决方案适用于我提出的问题。然而,还有另一个变量,我应该从一开始就显示出来。ON子句应该排除表A中的其他行,如下所示:ON A.COL_Z='Z'和(这里是我展示的)A.COL_X=b.ID。左连接解决了第二部分的问题,但似乎也忽略了COL_Z需要等于“Z”。你知道吗?很抱歉给你带来了困惑。无论如何,您已解决了所提出的问题。这一点您是对的。你的解决方案适用于我提出的问题。然而,还有另一个变量,我应该从一开始就显示出来。ON子句应该排除表A中的其他行,如下所示:ON A.COL_Z='Z'和(这里是我展示的)A.COL_X=b.ID。左连接解决了第二部分的问题,但似乎也忽略了COL_Z需要等于“Z”。你知道吗?很抱歉给你带来了困惑。您已经解决了所提出的问题。