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

SQL join two tables without unique key

这是在 SQL Server 2005 上完成的。

我有 2 个没有唯一属性的单独表。

Table A列:NAME|FROM|EMAIL

Table 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这里的连接类型是错误的吗?

你想要union all:

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

您还应该将 SQL 服务器升级到受支持的版本。 SQL 服务器 2008 将在几个月后失去支持。