मेरा लक्ष्य है बनाने के लिए एक क्वेरी को हटा कि एक डुप्लिकेट प्रविष्टि एक पंक्ति में MySQL का उपयोग 5.7. मेरे वर्तमान समारोह मैचों में प्रविष्टियों की एक ही वजन के साथ तथापि, यह एक डुप्लिकेट. (कृपया देखें 2 तालिका)
यहाँ है मेरी प्रविष्टि तालिका ।
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 |
लागू करने के बाद मेरा प्रश्न है जो:
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 |
के रूप में हम देख सकते हैं, परिणाम पर Lamok 2 and Lamok 4 had a 2 matches
Lamok 3 and Lamok 4 had a 2 matches too
... यह नहीं होना चाहिए संभव हो सकता है... इस में गिना जाता है के रूप में डुप्लिकेट लड़ाई. कैसे कर सकते हैं मैं इस तरह से बचने के दोहराव में मेरा प्रश्न है?
यह मेरा लक्ष्य आउटपुट: (कोई डुप्लिकेट झगड़े)
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 |