使用UNION法进行多表查询的注意事项

假设有两个字段完全一致的表,table1table2。字段分别为password, username, email
则使用UNION(或UNION ALL)进行多表查询的基本方法就是简单的连接:

 SELECT password,username,email
 FROM 
 table1 
 where username like '123' 
 
 UNION ALL //或用UNION以去除重复数据
 
 SELECT password,username,email
 FROM 
 table2 
 where username like '123' 

但是,如果表与表的字段不同,有重叠却不完全一致。就不是简单地用UNION来连接即可了。
要UNION两个或多个表,必须满足的条件就是这些表的字段都一样。为了满足这个条件,可以用","来代替缺少的字段。
例如:table1中有字段password,username,email,ip;table2中有字段password,username。则查询方法如下:

 
   /**
* mysql union
* coder:
* Jan 2015
*/

SELECT password,username,email,ip FROM table1 where username like '123' UNION ALL SELECT password,username,',',',' FROM table2 where username like '123'

以此类推。

--
PS: 抱歉各位,我撤下了评论回复邮件通知的功能,望周知。
因为SMTP插件在数据库中留下邮箱密码造成了一定危险。至于为什么会造成危险,咳咳,那就要问问我某位亲密无间的好朋友了。
最后,祝大家新年快乐~

66 Comments

Name *

E-mail *

Website

  1. 太古神王

    这是什么语言编写的啊

  2. JerryTsang

    嘿嘿,过来看看,喜欢你的博客!

  3. af

    关注博客的人还是挺多的嘛。

  4. 火锅桌椅

    终于更新啦/。很不错

  5. nlat

    在网络上搜wordpress的emoji表情无法现实的问题,就无意中闯进来。你的博客不错,多关注了一会儿发现居然是女孩….好厉害啊!不由得佩服。既然来了,还想问一下你,wp的emoji表情怎么出不来啊(编辑内容页面可以显示,可是发布后就不能现实啦)…

  6. Moker

    好像也有混V2的

  7. IAN

    你这个站速度蛮快的嘛,什么线路的?

  8. 枫先生

    什么危险??
    我的空间禁用了mail函数,只能用多说了

  9. 爆实惠

    博客有点发霉了

  10. Tokin

    萌姐今年然不更新了