UNION查询使用问题

时间:2011-07-06 22:26:26

标签: mysql

这里的问题是假设我想使用由UNION分隔的两个查询,则查询为

             $query=(select a.name,a.age,b.country,b.state from a,b where a.aid=b.bid)  UNION (select a.name,a.age,c.profession,c.salary from a,c where a.anid=c.cid)

这里结果只会显示第一个查询的结果,我可以用任何方式显示第二个查询的结果,也可以显示第一个查询使用UNION的结果。期待任何帮助。感谢

4 个答案:

答案 0 :(得分:0)

试试这个

$query=(select a.name,a.age,b.country,b.state from a,b where a.aid=b.bid UNION select a.name,a.age,c.profession,c.salary from a,c where a.anid=c.cid)

顺便说两个select中的字段必须是相同的数据类型

答案 1 :(得分:0)

据我所知,联盟是在两个不同的表上进行相同的查询。如果从工会的前半部分得到结果,你将无法从下半部分得到结果。

答案 2 :(得分:0)

UNION的基本属性是

  

列出的选定列   每个SELECT的相应位置   语句应该具有相同的数据   类型。 (例如,第一列   由第一个声明选择应该   与第一列具有相同的类型   由其他陈述选择。)

     

如果数据类型对应   SELECT列不匹配,类型   和列中的列长度   UNION的结果考虑到了   由所有SELECT检索的值   声明。例如,考虑一下   以下内容:

答案 3 :(得分:0)

你好吗

(
  select a.name,a.age,b.country,b.state,null as profession,null as salary 
  from a,b
  where a.aid=b.bid
)  
UNION 
(
   select a.name,a.age,null,null,c.profession,c.salary
   from a,c
   where a.anid=c.cid
)

第一个查询的专业和工资列中将为null,第二个查询中的国家和州列中为null