SQL Query,查询来自不同表的单个字段名称

时间:2013-09-27 09:12:17

标签: mysql sql sql-server select join

我有两个相同字段的表。 (请不要责怪设计) 以下仅针对示例模式

  

表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返回到结果字段。

3 个答案:

答案 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'

如果要订购结果,可以将上面用作子查询。