Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल कई से कई में शामिल हों

यह इस छोटी सी चाल के साथ संभव है (कई-से-कई टेबल पर बाहरी जॉइन, इस बाधा के साथ कि ग्रुपआईडी को 3 (नाटक के लिए) होना चाहिए

http://sqlfiddle.com/#!9/01cf3/1

SELECT elements.ID, elements.Element, groups.Genre
  FROM elements
LEFT OUTER JOIN group_elements
  ON elements.ID = group_elements.ElementID
 AND group_elements.GroupID = 3
LEFT OUTER JOIN groups
  ON group_elements.GroupID = groups.ID

LEFT OUTER JOIN इसका अर्थ है:पहले वाली तालिकाओं से सभी पंक्तियां लें (वे जो LEFT OUTER JOIN के बाएं हाथ की ओर हैं , यदि आप करेंगे), भले ही निम्न तालिकाओं में उनके अनुरूप कोई पंक्तियाँ न हों। शर्त ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3 कहता है कि अगर हमें कुछ ऐसा मिलता है जो हमारे ElementID से मेल खाता है, तो यह भी एक नाटक होना चाहिए (GroupID =3)। फिर हम ग्रुप टेबल पर एक और लेफ्ट आउटर जॉइन करते हैं, जो हमें Genre कॉलम, या NULL प्रदर्शित करने में सक्षम बनाता है यदि एलिमेंट ड्रामा नहीं था।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सिम्फनी:ड्राइवर में एक अपवाद हुआ:mysql के साथ ड्राइवर नहीं मिला

  2. MySQL में एक्सेंट असंवेदनशील खोज क्वेरी

  3. '127.0.0.1' (10061) (2003) पर MySQL सर्वर से कनेक्ट नहीं हो सकता

  4. ट्रिगर बनाने से पहले DELIMITER पर MySQL सिंटैक्स त्रुटि

  5. PHP स्क्रिप्ट MySQL तालिकाओं को पॉप्युलेट करने के लिए