如何从无关联的两个SQL表中检索数据行?
用UNION ALL合并无关联表的结果
嗨,要实现返回这两个无关联表的各自数据行,最直接高效的方法就是使用UNION ALL操作符——它能把多个查询的结果直接拼接起来,还不会做额外的去重操作,完美匹配你的需求!
具体SQL查询语句
SELECT ID, CarName AS SecondColumn FROM TableA UNION ALL SELECT ID, FirstName AS SecondColumn FROM TableB;
为什么这么写?
- 我们给两个查询的第二列统一了别名
SecondColumn,确保结果集的列结构一致(SQL要求合并的结果集必须列数相同、对应列的数据类型兼容,这里ID是整数,CarName和FirstName都是字符串,完全满足)。 UNION ALL会直接把表A的查询结果和表B的查询结果拼接在一起,返回两行数据:- (1, 'Fiat')
- (1, 'Super Man')
- 如果你用
UNION代替UNION ALL,虽然这里结果一样,但UNION会额外做去重检查,效率更低,所以优先选UNION ALL。
内容的提问来源于stack exchange,提问作者Shadib
相关产品推荐
相关产品推荐

