क्वेरी को हटा कि एक डुप्लिकेट प्रविष्टि का उपयोग mysql

0

सवाल

मेरा लक्ष्य है बनाने के लिए एक क्वेरी को हटा कि एक डुप्लिकेट प्रविष्टि एक पंक्ति में 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   |
database mysql
2021-11-24 05:26:19
1

सबसे अच्छा जवाब

0

मुझे लगता है कि आप की जरूरत है कि समूह की दो कॉलम द्वारा, द्वारा entryName और weight.

तो इस क्वेरी वापसी करेंगे अपने डुप्लिकेट:

SELECT *
FROM entry
GROUP BY entryName, weight
HAVING COUNT(*) > 1

आप पाते हैं जब दोहराया तो आप उन्हें नष्ट कर सकते हैं. यदि आप चाहते हैं उन्हें नष्ट करने के लिए के साथ क्वेरी है, तो आप उपयोग कर सकते हैं इस तरह से कुछ:

DELETE FROM entry
WHERE entryID IN (
    SELECT e.entryID 
    FROM entry AS e
    GROUP BY e.entryName, e.weight
    HAVING COUNT(*) > 1
)
2021-11-24 09:08:29

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में