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

MySQL - इस तालिका में क्या है को छोड़कर सभी का चयन करें

LEFT JOIN/IS NULL का उपयोग करना

   SELECT DISTINCT
          i.data
     FROM IMAGE i
     JOIN USER_IMAGE ui ON ui.image_id = i.id
LEFT JOIN USER u ON u.id = ui.user_id
                AND u.user = ?
    WHERE u.id IS NULL

NOT IN का उपयोग करना

SELECT DISTINCT
       i.data
  FROM IMAGE i
  JOIN USER_IMAGE ui ON ui.image_id = i.id
 WHERE ui.user_id NOT IN (SELECT u.id
                            FROM USER u
                           WHERE u.user = ?)

NOT EXISTS का उपयोग करना

SELECT DISTINCT
       i.data
  FROM IMAGE i
  JOIN USER_IMAGE ui ON ui.image_id = i.id
 WHERE NOT EXISTS(SELECT NULL
                    FROM USER u
                   WHERE u.id = ui.user_id
                     AND u.user = ?)

प्रदर्शन:

LEFT JOIN/IS NULL और NOT IN समकक्ष प्रदर्शन प्रदान करें - NOT EXISTS ~ 30% कम कुशल है। अधिक विवरण के लिए इसे देखें



  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. पूर्वनिर्धारित क्रम में रिटर्निंग क्वेरी परिणाम

  3. MySQL और PDO:क्या PDO::lastInsertId सैद्धांतिक रूप से विफल हो सकता है?

  4. वर्डप्रेस ने IN() कंडीशन के साथ स्टेटमेंट तैयार किया

  5. MySQL:मैं ट्रिगर्स में डिलीमीटर का उपयोग कैसे करूं?