+-------------------------+
| SKU | UPC | NAME | INVID
+-------------------------+
| 001 | 111 | NAME1 | 1
| 001 | null | NAME2 | 2
| 0-1 | 111 | NAME3 | 3
| -01 | 111 | NAME4 | 4
| 002 | 222 | NAME5 | 5
| 002 | null | NAME6 | 6
| 003 | 333 | NAME7 | 7
+-------------------------+
Chcę znaleźć duplikaty rekordów w tej tabeli według dwóch kryteriów. Pierwsza to SKU, druga to UPC. W tym przypadku duplikaty rekordów wynoszą [1,2,3,4] i [5,6]. Wiersze [1,2] są duplikowane, ponieważ liczby sku są dopasowane. Wiersze [1,3,4] są duplikatami, ponieważ numery UPC są dopasowane. Pierwszy duplikat grupa powinna wyglądać następująco:Znajdź duplikaty rekordów w tabeli według więcej niż jednego kryterium:
GROUP1 *
+-------------------------+
| 001 | 111 | NAME1 | 1
| 001 | null | NAME2 | 2
| 0-1 | 111 | NAME3 | 3
| -01 | 111 | NAME4 | 4
+-------------------------+
Drugi duplikat grupa powinna wyglądać następująco:
GROUP2 *
+-------------------------+
| 002 | 222 | NAME5 | 5
| 002 | null | NAME6 | 6
+-------------------------+
Jak mogę znaleźć te grupy za pomocą zapytania mysql? Po znalezieniu duplikatów rekordów ustawiam grouID * * * dowolnego duplikatu rekordu w tabeli.
Próbowałem tego, ale nie pokazywałem wszystkich duplikatów.
select sku, upc
from inv
WHERE sku is not null
GROUP BY sku, upc HAVING count(sku) > 1 OR count(upc) > 1
Jest to schemat SQL:
http://sqlfiddle.com/#!2/4d760/2
Ten powrót zapytanie pusty wynik.
że SQL strona skrzypce jest genialna na pytania SQL, dzięki za wprowadzenie –