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

MySQL और बाधाओं के साथ मेल खाने वाले टैग (समानता खोज) की खोज करें

SELECT  c.articleid, COUNT(*) AS ct
    FROM articletag AS b
    JOIN articletag AS c  ON c.tagid = b.tagid
                         AND c.articleid != b.articleid
    WHERE b.articleid = 123
    GROUP BY c.articleid
    ORDER BY ct DESC;

123 (आपके उदाहरण में आइटम-बी) के समान 'समान' की खोज करते समय, आउटपुट होना चाहिए

Item-A, 2
Item-C, 1

यह articletag . का पूरा स्कैन है . इसलिए, many:many मैपिंग

यदि आपको क्वेरी करने के बाद लेखों के बारे में जानकारी प्राप्त करने की आवश्यकता है, तो इसे 'व्युत्पन्न' तालिका के रूप में उपयोग करें; उदाहरण के लिए:

SELECT articles.*
    FROM ( the above SELECT ) AS x
    JOIN articles USING(articleid)
    ORDER BY x.ct DESC;

(आप ORDER BY को हटा सकते हैं आंतरिक क्वेरी से, क्योंकि इसे बाहरी ORDER BY . की वरीयता में अनदेखा कर दिया जाएगा ।)




  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. एकाधिक अपलोड फॉर्म से सरणी, चित्र अपलोड करें फिर डेटाबेस में डालें (PHP, MySQL)

  3. MySQL या MariaDB का बैकअप लेने के लिए mysqldump का उपयोग करें

  4. MySQL - कॉलम को पंक्तियों में अनपिवट कैसे करें?

  5. मैं एक .NET MySqlCommand में एक MySQL उपयोगकर्ता परिभाषित चर का उपयोग कैसे कर सकता हूं?