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

एसक्यूएल:रंग-तालिका से रंगों को खोजने योग्य बनाएं

आप यहां सशर्त एकत्रीकरण का उपयोग करेंगे। उदाहरण के लिए लाल और नीले रंग के लिए आप ऐसे कार्ड ढूंढना चाहते हैं जहां

  1. दोनों रंग मौजूद हैं
  2. कोई अन्य रंग मौजूद नहीं है

इसका मतलब है कि अगर मैं एक कार्ड के लिए लाल और नीला गिनता हूं तो मुझे 2 मिलना चाहिए। अगर मैं सभी रंगों को गिनता हूं तो मुझे भी 2 मिलना चाहिए। (एक, तीन या अधिक रंगों के लिए समान।)

इसलिए इस क्वेरी का उपयोग करें और केवल बताए गए रंगों और रंगों की संख्या को बदलें:

select *
from cards_data where id in
(
  select cards_id
  from con_cards_colors
  group by cards_id
  having count(case when colors_id in (select id from colors where name in ('Red','Blue')) then 1 end) = 2 -- i.e. find all
  and count(*) = 2 -- i.e. find only those and no others
);


  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. Woocommerce ऑर्डर को प्रोग्रामेटिक रूप से अपडेट करना

  3. समवर्ती डेटा डालने में mysql_insert_id समस्या

  4. मैं MySQL में प्रश्नों को अनुकूलित करने और ठीक करने में सहायता के लिए कैसे पूछूँ?

  5. मध्यरात्रि से अब तक अंतराल के साथ प्रति घंटा डेटा प्राप्त करें