【发布时间】:2013-09-13 15:33:30
【问题描述】:
我觉得我在这里遗漏了一些简单的东西......
表 A(名称、值)
ABC 123
DEF 456
XYZ 789
NON 111
表 B(名称 1、名称 2、颜色)
ABC NULL Red
NULL DEF Blue
SQL 查询
select *
from TableA A
left join TableB B on A.name = B.name1 or A.name = B.name2
这样做只会返回
A.name、a.value、b.color
ABC 123 Red
DEF 456 Blue
我需要它返回
A.name、a.value、b.color
ABC 123 Red
DEF 456 Blue
XYZ 789 NULL
NON 111 NULL
不包括左表中的行。
【问题讨论】:
-
您的查询看起来与您想要的输出正确。
-
您的代码看起来是正确的。我会检查您是否确实在使用此代码,并且没有交换表(从 B 连接到 A),并且您正在执行
LEFT JOIN。 -
检查了您的查询。它在 Mysql 上正常工作
-
这里是 SQL Fiddle,表明上述方法在 SQL Server (sqlfiddle.com/#!3/48d02/1) 中有效。
-
用 SQL 检查。工作得很好。
标签: sql sql-server tsql left-join