掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
使用DISTINCT關(guān)鍵字或者GROUP BY子句可以去除重復(fù)記錄,同時(shí)需要指定關(guān)聯(lián)的字段。
當(dāng)使用SQL進(jìn)行兩表關(guān)聯(lián)時(shí),可能會出現(xiàn)重復(fù)記錄的情況,為了避免這種情況,可以使用以下方法:

成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)康巴什,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
1、使用DISTINCT關(guān)鍵字
在查詢語句中使用DISTINCT關(guān)鍵字可以去除重復(fù)的記錄,假設(shè)有兩個(gè)表table1和table2,它們通過字段id進(jìn)行關(guān)聯(lián),可以使用以下查詢語句去除重復(fù)記錄:
SELECT DISTINCT table1.*, table2.* FROM table1 JOIN table2 ON table1.id = table2.id;
2、使用子查詢
可以使用子查詢來避免重復(fù)記錄,假設(shè)有兩個(gè)表table1和table2,它們通過字段id進(jìn)行關(guān)聯(lián),可以使用以下查詢語句去除重復(fù)記錄:
SELECT *
FROM (
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
) AS temp_table;
3、使用GROUP BY子句
如果需要對關(guān)聯(lián)后的記錄進(jìn)行分組,可以使用GROUP BY子句,假設(shè)有兩個(gè)表table1和table2,它們通過字段id進(jìn)行關(guān)聯(lián),可以使用以下查詢語句去除重復(fù)記錄:
SELECT table1.id, COUNT(*) as count FROM table1 JOIN table2 ON table1.id = table2.id GROUP BY table1.id;
4、使用ROW_NUMBER()窗口函數(shù)
可以使用ROW_NUMBER()窗口函數(shù)為每個(gè)分組分配一個(gè)唯一的行號,然后只選擇行號大于1的記錄,假設(shè)有兩個(gè)表table1和table2,它們通過字段id進(jìn)行關(guān)聯(lián),可以使用以下查詢語句去除重復(fù)記錄:
WITH temp_table AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS row_num
FROM table1
JOIN table2 ON table1.id = table2.id
)
SELECT * FROM temp_table WHERE row_num > 1;

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流