2010-10-19 8 views

उत्तर

11

एक डिलीट में, आप यूएसई क्लॉज के बाद टेबल सूचीबद्ध कर सकते हैं, जिससे पंक्तियां हटाई नहीं जाती हैं (यानी, केवल WHERE क्लॉज का हिस्सा बनने के लिए)। उदाहरण के लिए:

DELETE FROM t1, t2 
    USING t1 
    INNER JOIN t2 
    INNER JOIN t3 
    WHERE t1.id=t2.id AND 
     t2.id=t3.id; 

आपका विशिष्ट उदाहरण इस प्रकार से उपयोग किए बिना प्राप्त किया जा सकता:

DELETE l,s 
FROM l 
    INNER JOIN s 
    ON s.skill_id = l.id 
WHERE s.user_id = 3 
+0

आपके पहले उदाहरण में, 11 और साथ ही टी 2 से पंक्तियां हटा दी जाएंगी। ऐसा लगता है कि आपकी स्पष्टीकरण के विपरीत है ("आप उपयोग करने वाले खंड के बाद टेबल सूचीबद्ध कर सकते हैं, जिनसे पंक्तियां ** ** ** हटाई नहीं जातीं")। – klokop

0

का उपयोग खंड एक में शामिल हों में दो तालिकाओं के लिए स्तंभ अस्तित्व मापदंड स्थापित करने के लिए प्रयोग किया जाता है।

तो, अगर मैं इस तरह के रूप में एक बयान है:

SELECT * from a 
JOIN b 
USING (c1,c2) 
... 

क्या होगा कि MySQL इंजन पहले की पुष्टि करेगा कि कॉलम c1 और c2 दोनों तालिकाओं में मौजूद हैं, और है तो वे कॉलम के मूल्यों की तुलना है दो टेबल पर शामिल करने के लिए।

JOIN Syntax के लिए MySQL दस्तावेज़ देखें।

+0

के लिए

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition] 

कि उपयोग करने वाले बयान का एक और उपयोग है, लेकिन वह जिस पर संदर्भ नहीं दे रहा है अपने प्रश्न में। –

+0

एलओएल वाह मैं ओपीएस वास्तव में पूछ रहे हैं पढ़ने पर आज 2 के लिए 0 हूँ ... –

0

USING के लिए DELETE के लिए MySQL दस्तावेज़ में खोजें। यह सिर्फ एक वैकल्पिक वाक्यविन्यास है।

0

USING बयान के लिए सिंटेक्स - विस्तृत जानकारी यात्रा USING

+0

नहीं, प्रश्न में 'USING' का उपयोग बहु-तालिका DELETE वाक्यविन्यास का हिस्सा है। –

+0

हां इसके अनुसार मेरा कोड अपडेट किया गया। :) – Alpesh

संबंधित मुद्दे