在MySQL中,聯(lián)合查詢(UNION)用于將多個(gè)SELECT查詢的結(jié)果合并成一個(gè)結(jié)果集。當(dāng)多個(gè)查詢中的列具有相同名稱時(shí),可以使用以下方法處理重復(fù)數(shù)據(jù):
在聯(lián)合查詢中使用DISTINCT關(guān)鍵字可以去除結(jié)果集中的重復(fù)行。例如:
SELECT DISTINCT column_name1, column_name2
FROM table1
UNION
SELECT DISTINCT column_name1, column_name2
FROM table2;
這將返回一個(gè)結(jié)果集,其中包含來(lái)自table1和table2的唯一行。
如果你不關(guān)心重復(fù)數(shù)據(jù),可以使用UNION ALL關(guān)鍵字。這將返回所有查詢結(jié)果,包括重復(fù)行。例如:
SELECT column_name1, column_name2
FROM table1
UNION ALL
SELECT column_name1, column_name2
FROM table2;
這將返回一個(gè)結(jié)果集,其中包含來(lái)自table1和table2的所有行,包括重復(fù)行。
如果你需要根據(jù)某個(gè)列對(duì)結(jié)果進(jìn)行分組,可以使用GROUP BY子句。這將允許你在分組的基礎(chǔ)上去除重復(fù)數(shù)據(jù)。例如:
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;
這將返回一個(gè)結(jié)果集,其中包含來(lái)自table1和table2的column_name1的唯一值及其出現(xiàn)次數(shù)。