Mój cel-stworzyć kwerendę, która usuwa дублирующуюся wpis w wierszu za pomocą MySQL 5.7. Moja obecna funkcja odwzorowuje rekordy o tej samej wadze, jednak ma duplikat. (Patrz 2-gą tabela)
Oto moja tabela danych.
entryID| entryName | weight |
-------------------------------
1 | lamok2 | 1970 |
2 | lamok2 | 1955 |
3 | lamok3 | 1965 |
4 | lamok3 | 1975 |
5 | lamok3 | 1985 |
6 | lamok4 | 1955 |
7 | lamok4 | 1960 |
8 | lamok4 | 1975 |
9 | lamok5 | 1955 |
10 | MA1 | 2000 |
11 | MA2 | 2010 |
Po zastosowaniu mojego wniosku, który:
SELECT t1.entryName AS mname, t1.weight AS weight,
MIN(t2.entryName) AS wname,MIN(t2.weight) AS weight
FROM entry t1
LEFT JOIN entry t2 ON t1.weight = t2.weight AND t1.entryName != t2.entryName
GROUP BY t1.entryID, t1.entryName, t1.weight
it produces this:
mname| weight | wname | weight|
--------------------------------------------
lamok2 | 1970 | NULL | NULL |
lamok2 | 1955 | lamok4 | 1955 |
lamok3 | 1965 | NULL | NULL |
lamok3 | 1975 | lamok4 | 1975 |
lamok3 | 1985 | NULL | NULL |
lamok4 | 1955 | lamok2 | 1955 |
lamok4 | 1960 | NULL | NULL |
lamok4 | 1975 | lamok3 | 1975 |
lamok5 | 1955 | lamok2 | 1955 |
MA1 | 2000 | NULL | NULL |
MA2 | 2010 | NULL | NULL |
Jak widać po wyniku, Lamok 2 and Lamok 4 had a 2 matches
Lamok 3 and Lamok 4 had a 2 matches too
... To nie powinno być możliwe... To jest дублирующим walką. Jak mogę uniknąć tego rodzaju powielania w swoim zapytaniu?
To jest mój docelowy wynik: (Żadnych powtarzających się walk)
mname| weight | wname | weight|
--------------------------------------------
lamok2 | 1970 | NULL | NULL |
lamok2 | 1955 | lamok4 | 1955 |
lamok3 | 1965 | NULL | NULL |
lamok3 | 1975 | lamok4 | 1975 |
lamok3 | 1985 | NULL | NULL |
lamok4 | 1960 | NULL | NULL |
lamok5 | 1955 | lamok2 | 1955 |
MA1 | 2000 | NULL | NULL |
MA2 | 2010 | NULL | NULL |