Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle JOIN ON colA=colB:如何包含colA中的空行_Sql_Oracle - Fatal编程技术网

Sql Oracle JOIN ON colA=colB:如何包含colA中的空行

Sql 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_

我有两张桌子

表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_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”。你知道吗?很抱歉给你带来了困惑。您已经解决了所提出的问题。