sql - 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 脚本给出了不好的结果,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 Server 升级到受支持的版本。SQL Server 2008将在几个月后失去支持。
推荐阅读
- python - Pandas 为单元格赋值,为什么这不起作用?
- javascript - 如果我在非异步函数中不等待就调用“AsyncStorage.setItem”会发生什么?
- .htaccess - Htaccess - 主页的 If/esle 语句语法
- php - 使用 jquery 的编辑按钮在下一页上不起作用无法编辑我的数据
- facebook - 创建二维码直接进入 Facebook 发帖
- arrays - 当它是另一个数组的元素时,如何约束数组的元素类型
- arrays - AppSync,使用 graphql-tag 将数组作为输入参数传递
- c# - 当玩家在超过 1 个街区时碰撞抽搐
- objective-c - 连续调用 [NSPasteboard canReadObjectForClasses:options:] 导致内存膨胀
- .net - Azure 函数从 Cosmos Db Mongo 集合返回空数据集