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

मैसकल अनेक से अनेक संबंध क्वेरी। फ़िल्टर किए गए पोस्ट के सभी टैग कैसे प्राप्त करें?

खैर, यह सबसे अच्छा है जो मैं सुबह 4:30 बजे सोच सकता हूं:

SELECT distinct tag_id FROM
    (SELECT pt1.post_id FROM pt1
    INNER JOIN tags t1 ON (pt1.tag_id = t1.id)
    WHERE t1.id IN (1, 2)
    GROUP BY pt1.post_id
    HAVING COUNT(DISTINCT t1.id) = 2) MatchingPosts
INNER JOIN pt2 ON (MatchingPosts.post_id = pt2.post_id)
WHERE (pt2.tag_id NOT IN (1, 2))

(1, 2) वे टैग हैं जिन्हें आप ढूंढ रहे हैं और निश्चित रूप से, गिनती को आपके द्वारा फ़िल्टर करने के लिए उपयोग किए जा रहे टैग की मात्रा से मेल खाना होगा।

यहां एक उदाहरण दिया गया है (ध्यान दें कि मैंने डेटा को थोड़ा बदल दिया है)



  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. मैसकल लेफ्ट जॉइन तीन टेबल में से कई पंक्तियों में लौटता है

  4. सम्मिलित डेटा phpmyadmin डेटाबेस में सहेज नहीं रहा था

  5. MySQL GROUP BY वरीयता के साथ