在MySQL中,聯合查詢(UNION)用于將多個SELECT查詢的結果合并成一個結果集。當多個查詢中的列具有相同名稱時,可以使用以下方法處理重復數據:
在聯合查詢中使用DISTINCT關鍵字可以去除結果集中的重復行。例如:
SELECT DISTINCT column_name1, column_name2
FROM table1
UNION
SELECT DISTINCT column_name1, column_name2
FROM table2;
這將返回一個結果集,其中包含來自table1和table2的唯一行。
如果你不關心重復數據,可以使用UNION ALL關鍵字。這將返回所有查詢結果,包括重復行。例如:
SELECT column_name1, column_name2
FROM table1
UNION ALL
SELECT column_name1, column_name2
FROM table2;
這將返回一個結果集,其中包含來自table1和table2的所有行,包括重復行。
如果你需要根據某個列對結果進行分組,可以使用GROUP BY子句。這將允許你在分組的基礎上去除重復數據。例如:
SELECT column_name1, COUNT(*) as count
FROM (
SELECT column_name1
FROM table1
UNION ALL
SELECT column_name1
FROM table2
) as combined_table
GROUP BY column_name1;
這將返回一個結果集,其中包含來自table1和table2的column_name1的唯一值及其出現次數。