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

सामान्यीकृत डेटाबेस - एक से कई - सभी जुड़े हुए डेटा सेट के माध्यम से खोजें

इसे करने का एक तरीका यह है:

    SELECT DISTINCT song.song_id, song.title
    FROM song
    INNER JOIN (SELECT songid FROM song_genre WHERE song_genre.genre_id ='1') genre1 
         ON genre1.song_id = song.song_id
    INNER JOIN (SELECT songid FROM song_genre WHERE song_genre.genre_id ='2') genre2 
         ON genre2.song_id = song.song_id

एक और तरीका जो अधिक कुशल हो सकता है। यह मानता है कि song_genre में कोई डुप्लिकेट नहीं है। COUNT(*) =X जहां X सूचीबद्ध शैलियों की संख्या के बराबर है।

SELECT DISTINCT song.song_id, song.title
FROM song
INNER JOIN (SELECT songid, COUNT(*) FROM song_genre 
WHERE genre_id IN ('1','2') 
GROUP BY songid HAVING COUNT(*) = 2) genre1 ON genre1.song_id = song.song_id


  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 DBMS में ट्रिगर

  3. एक दिन में प्रत्येक घंटे के नवीनतम रिकॉर्ड का चयन कैसे करें

  4. यूनिक्स युग टाइमस्टैम्प को जावास्क्रिप्ट दिनांक टाइमस्टैम्प में बदलें

  5. डेटाबेस में गतिशील, एकाधिक पंक्तियों को दर्ज करने के लिए MySQLi तैयार कथन का उपयोग करें?