MySQL聯(lián)合查詢(UNION)可以將兩個或多個SELECT語句的結(jié)果集合并成一個結(jié)果集。
UNION的語法如下:
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2;
需要注意的是,UNION的兩個SELECT語句必須具有相同的列數(shù)和列數(shù)據(jù)類型。
示例:
SELECT id, username FROM users UNION SELECT id, nickname FROM profiles;
上面的示例中,我們將users表和profiles表的id和username、nickname列合并成一個結(jié)果集。
另外需要注意的是,通過UNION合并結(jié)果集時,會自動去重。如果需要保留重復(fù)的行,可以使用UNION ALL。
示例:
SELECT id, username FROM users UNION ALL SELECT id, username FROM banned_users;
上面的示例中,我們將users表和banned_users表的id和username列合并成一個結(jié)果集,并保留重復(fù)的行。
UNION查詢也可以與其他子句一起使用,例如WHERE、ORDER BY和LIMIT。
示例:
SELECT id, username FROM users WHERE status = 'active' UNION SELECT id, nickname FROM profiles WHERE role = 'admin' ORDER BY id DESC LIMIT 10;
上面的示例中,我們查詢用戶狀態(tài)為“active”的users表,和角色為“admin”的profiles表,并按id倒序排序,最終結(jié)果集最多包含10行。