SELECT no,name FROM table_1 WHERE name='王小明'
UNION
SELECT no,name FROM table_2 WHERE name='王小明'
如果兩個班級都有王小明,上述的方式查出來的結果只會有一筆資料,如果需要兩個班級的王小明都列出來,我們可以用
SELECT no,name FROM table_1 WHERE name='王小明'
UNION ALL
SELECT no,name FROM table_2 WHERE name='王小明'
註1:要進行聯集查詢,前提是資料欄位數量必須相符。
註2:資料欄位型別若不相同,會嚐試自動轉換,如無法轉換,則會失敗。
註3:如果兩個表的欄位名稱不一樣,可以用AS去設成一樣,請見 [MySQL Note.] 聯合查詢筆記
註4:如果要排序的話,需要拉到外面來做,不然會報錯,語法如下:
SELECT * FROM (
SELECT no,name FROM table_1 WHERE name='王小明'
UNION ALL
SELECT no,name FROM table_2 WHERE name='王小明'
) AS a ORDER BY no
No comments:
Post a Comment