Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cari tag yang cocok (Pencarian Kesamaan) dengan MySQL dan Kendala

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;

Saat mencari apa yang 'mirip' dengan 123 (Item-B dalam contoh Anda), outputnya harus

Item-A, 2
Item-C, 1

Ini adalah pemindaian lengkap articletag . Jadi, perhatikan tips dalam diskusi saya tentang many:many mapping .

Jika Anda perlu mendapatkan informasi tentang artikel setelah melakukan kueri, gunakan itu sebagai tabel 'turunan'; misalnya:

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

(Anda dapat menghapus ORDER BY dari kueri dalam, karena akan diabaikan dalam preferensi ke ORDER BY luar .)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hitungan untuk setiap bergabung - pengoptimalan

  2. Bagaimana saya bisa menggunakan cURL untuk membuka banyak URL secara bersamaan dengan PHP?

  3. Cara membuat kenaikan otomatis kunci utama tabel MySQL dengan beberapa awalan

  4. mengapa saya harus menggunakan mb_convert_encoding($name,'ISO-8859-15','utf-8') untuk menampilkan karakter beraksen?

  5. Gambaran Umum Replikasi Silang PostgreSQL &MySQL