假设有两个字段完全一致的表,table1
和table2
。字段分别为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: xiaohudie
* 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插件在数据库中留下邮箱密码造成了一定危险。至于为什么会造成危险,咳咳,那就要问问我某位亲密无间的好朋友了。
最后,祝大家新年快乐~
mysql_union is coded by http://xiaohudie.net. Any posts here is one hundred percent original, so please keep my link so as not to hurt this pretty girl. -
感觉你的模版好简洁