假設有兩個字段完全一致的表,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插件在數據庫中留下郵箱密碼造成了一定危險。至於為什麼會造成危險,咳咳,那就要問問我某位親密無間的好朋友了。