MySQL 刪除重復(fù)數(shù)據(jù)
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、迎江ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的迎江網(wǎng)站制作公司
有些 MySQL 數(shù)據(jù)表中可能存在重復(fù)的記錄,有些情況我們允許重復(fù)數(shù)據(jù)的存在,但有時候我們也需要刪除這些重復(fù)的數(shù)據(jù)。
本章節(jié)我們將為大家介紹如何防止數(shù)據(jù)表出現(xiàn)重復(fù)數(shù)據(jù)及如何刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù)。
刪除重復(fù)數(shù)據(jù)
如果你想刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù),你可以使用以下的SQL語句:
from 樹懶學(xué)堂 - 一站式數(shù)據(jù)知識平臺
當(dāng)然你也可以在數(shù)據(jù)表中添加 INDEX(索引) 和 PRIMAY KEY(主鍵)這種簡單的方法來刪除表中的重復(fù)記錄。方法如下:
Sql代碼
CREATE VIEW view_name AS
SELECT t1.xxx, t2.xxx, t3.xxx
FROM (table1 t1
INNER JOIN table2 t2 ON t1.fid = t2.fid)
INNER JOIN table3 t3 ON t1.mid = t3.mid;
這里使用了3表關(guān)聯(lián),對于多表關(guān)聯(lián)的 INNER JOIN 寫法有一個技巧
1. 先寫最簡單的2表關(guān)聯(lián) INNER JOIN
2. 然后使用 () 從 FROM 之后到語句結(jié)尾全部擴起來
3. 在語句結(jié)尾開始連接與下一個表的 INNER JOIN
記住這個原則,未來進行4表關(guān)聯(lián),5表關(guān)聯(lián)就都不是什么難事了
select?a.area_id,a.rsum,IFNULL(b.rcount,0)?rcount?from?
(select?area_id,sum(balance_no)?rsum?from?user?group?by?area_id)?a?
left?jion
(select?a.area_id,count(b.policy_no)?rcount?from?user?a,?order?b?where?a.userid=b.userid?group?by?a.area_id)?b?
on?(a.area_id=b.area_id)
1、建議以后給出列名、數(shù)據(jù)示例,這樣可以直接粘貼運行
2、例程:
SELECT DISTINCT 表1.列2,表1.列1
FROM 表1
WHERE 表1.列2 IN (SELECT 列1 FROM 表2)