MySQLははっきり列前記重複データの唯一の複数を残します

- 创建临时表存储查询出的数据
一時テーブルをドロップした場合childtable存在します。
一時表childtableを作成する(選択 * から tb_child Aの場合 
(a.patriarch_id、a.student_id)におけるセレクト patriarch_id、STUDENT_ID からpatriarch_idによってtb_child基、STUDENT_ID 
カウント(持つ *)> 1 
としないchild_id セレクト分(child_id )からtb_child基
patriarch_idによって、カウントを有するSTUDENT_ID( *)> 1 ))。

選択 *ChildTableから
表の一時ChildTableをドロップ;
 - 一時テーブル内のデータを削除する条件に応じて
削除から tb_childは     child_id SELECTが childtable.child_id からChildTable) - 結合関係テーブルのid親や学生証、重複データをチェックしてください。しかし、結合関係が含まれていない、そのレコードの最小ID
 SELECT * から tb_childのA WHERE  
(a.patriarch_id、a.student_id)SELECT patriarch_idは、STUDENT_ID からpatriarch_idによってtb_childグループは、STUDENT_ID 
HAVING COUNT( *)> 1 
とchild_idない

SELECT分(child_id)からtb_childグループ
patriarch_idによって、COUNT(HAVING STUDENT_ID *)> 1 

 - 行番号を持つクエリ有するpatriarch_id、複製STUDENT_IDデータ(ID最小負の最初のデータ)を
 選択(@rownum:= + @rownum 。1。)ASのROWNUM、A * から tb_childのA、(SELECT @rownum:= 0)とRN   WHERE  
(a.patriarch_id、a.student_id)におけるSELECT patriarch_id、STUDENT_ID からpatriarch_idグループSTUDENT_IDによってtb_child 
HAVING COUNT ( *)> 1 
とないchild_id SELECT分(child_id)からtb_child基
patriarch_idによっては、カウント(有するSTUDENT_ID *)> 1 

 - 查询出具有patriarch_id、STUDENT_ID重复的数据带行号
 選択(@rownum:= @rownum + 1 ROWNUM、CI AS)*。tb_child ciは、(SELECT 
    :@rownum = 0 RN AS)   patriarch_id 選択 patriarch_id から patriarch_idによってtb_child基は、COUNT(*)>を有するSTUDENT_ID 1

 

おすすめ

転載: www.cnblogs.com/chongyao/p/12667942.html