这是在SQL Server 2005上完成的。
我有2个没有唯一属性的单独表。
表A列:NAME|FROM|EMAIL
表B列:NAME|FROM|EMAIL
我正试图从A获得所有结果 +从B获得所有结果,其中FROM
等于'123'。
SELECT
x.FROM as 'FROM',
x.Email as 'Email',
x.Name as 'Name'
FROM TableA x
INNER JOIN TableB y
ON x.FROM = y.FROM
WHERE x.FROM = '123'
当前的SQL脚本会产生错误的结果,TableB不会提供任何结果,而TableA只能以重复的方式提供1个结果。
这里的Inner Join
连接类型错误吗?
答案 0 :(得分:1)
您要union all
:
select name, [from], email
from a
union all
select name, [from], email
from b
where [from] = '123';
还应该将SQL Server升级到受支持的版本。 SQL Server 2008 在几个月后将失去支持。