我有两个相同字段的表。 (请不要责怪设计) 以下仅针对示例模式
表A
ID
命名
手机
钥匙表B
ID
命名
键
地址
所以,我想从单个查询中满足条件'keys'的表A或B中查询id,name,返回Field只需“ID”和“NAME”,无论是来自tableA还是tableB
简单查询
将a.id,a.name,b.id,b.name FROM TABELA选为a,TABLEB为b WHERE a.keys ='1'或b.keys ='1'
它将重复的id,name,id1,name1返回到结果字段。
答案 0 :(得分:1)
使用union或union all。 Union只返回不同的行,union all返回所有行
参见手册manual on unions
中的示例SELECT a.id, a.name FROM TABELA as a WHERE a.keys = '1'
union
SELECT b.id, b.name FROM TABELb as b WHERE b.keys = '1'
答案 1 :(得分:1)
使用UNION
代替CROSS JOIN
:
SELECT a.id, a.name
FROM TABELA as a
WHERE a.keys = '1'
UNION
SELECT b.id, b.name
FROM TABLEB as b
WHERE b.keys = '1'
答案 2 :(得分:1)
您实际上并未加入表,但您只想组合两个不同查询的结果。我们有UNION SELECT:
SELECT id, name FROM tableA
WHERE keys = '1'
UNION SELECT id, name FROM tableB
WHERE keys= '1'
如果要订购结果,可以将上面用作子查询。