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

MySQL क्वेरी परिणामों में नहीं पाए गए मान शामिल करना

एक left join सही है, लेकिन आपको types . की आवश्यकता है प्रथम होना:

SELECT DISTINCT types.type, owners.name, owners.city
FROM tbl_pet_types types LEFT JOIN
     tbl_pet_owners owners
     ON owners.pet = types.pet
WHERE types.type IN ('mammal', 'fish', 'amphibian', 'seacreature');

क्योंकि WHERE खंड केवल tbl_pet_types को संदर्भित करता है , यह नहीं बदलता है।

कैसे left join कार्य सरल है:यह सभी पंक्तियों को पहले . में रखता है मेज़। दूसरे में बेजोड़ कॉलम NULL become बन जाते हैं ।

संपादित करें:

यदि आपके पास उन प्रकारों की सूची है जो tbl_pet_types . में नहीं हैं , तो आपको left join . की आवश्यकता होगी व्युत्पन्न तालिका में सभी मानों के साथ:

SELECT DISTINCT tt.type, po.name, po.city
FROM (SELECT 'mammal' as type UNION ALL
      SELECT 'fish' as type UNION ALL
      SELECT 'amphibian' as type UNION ALL
      SELECT 'seacreature' as type 
     ) tt left join
     tbl_pet_types pt
     ON pt.type = tt.type LEFT JOIN
     tbl_pet_owners po
     ON po.pet = pt.pet;


  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. MySql यूटिलिटीज नहीं चला सकता

  4. PHP में SHOW TABLES क्वेरी के परिणाम पर पेजिनेशन कैसे लागू करें

  5. Mysql कई संग्रहीत प्रक्रियाओं से एक संग्रहीत कार्यविधि बनाता है