SQL 联接两个没有唯一键的表



这是在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 脚本给出的结果很糟糕,表B中没有任何结果,只有1个来自表A的结果以重复的方式出现。

这里的Inner Join连接类型是错误的吗?

你想要union all

select name, [from], email
from a
union all
select name, [from], email
from b
where [from] = '123';

您还应该将 SQL Server 升级到受支持的版本。 SQL Server 2008 将在几个月内失去支持。

最新更新