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

मास्टर रिकॉर्ड प्राप्त करने के लिए उन्नत मैसकल क्वेरी यदि चाइल्ड रिकॉर्ड की विभिन्न पंक्तियों पर दो स्थितियां मेल खाती हैं

दरअसल, जैसा कि AsConfuse ने संकेत दिया है, आपको उपनामों का उपयोग करके TABLE2 में दो जुड़ने की आवश्यकता है

-- both of these are tested :

-- find t1 where it has 2 and 7 in t2

    select t1.*
    from table1 t1
    join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
    join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7

-- find t1 where it has 2 and 7 in t2, and no others in t2

select t1.*, ovx.id
    from table1 t1
      join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
      join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7
      LEFT OUTER JOIN table2 ovx on t1.id=ovx.masterid and ovx.optionValue not in (2,7)
    WHERE ovx.id is 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. इन्सर्ट इग्नोर - क्या यह जानने का कोई तरीका है कि क्या स्टेटमेंट को नजरअंदाज किया गया था? माई एसक्यूएल

  2. तीन MySQL प्रश्नों को एक में कैसे संयोजित करें?

  3. डेटाबेस त्रुटि:"सभी तर्क स्ट्रिंग स्वरूपण के दौरान परिवर्तित नहीं होते हैं" जब मैं pandas.io.sql.to_sql() का उपयोग करता हूं

  4. कैसे mysql में डेटा पंक्तियों से नई पंक्ति वर्ण निकालने के लिए?

  5. एक निश्चित समय अवधि से पहले और बाद में मौजूद मानों की गणना करें