【问题标题】:SQL join two tables without unique keySQL连接两个没有唯一键的表
【发布时间】:2019-06-24 23:17:52
【问题描述】:

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

【问题讨论】:

  • 您没有选择任何 TableB 列...试试select * from ...

标签: sql sql-server-2005


【解决方案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 几个月后将失去支持。

【讨论】:

  • 我认为from a之后需要有一个where子句。
  • 谢谢,这个解决方案非常有效。正如 Marlin 所说,在 TableA 上使用 WHERE 命令是我在顶部添加的内容。
猜你喜欢
  • 2017-01-25
  • 2014-08-04
  • 1970-01-01
  • 2012-09-17
  • 2010-12-20
  • 2019-11-16
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
相关资源
最近更新 更多