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

Memesan item dengan tag yang cocok dengan jumlah tag yang cocok

Coba sesuatu seperti ini:

select article_id, count(tag_id) as common_tag_count
from articles_tags 
group by tag_id
where tag_id in (
    select tag_id from articles_tags where article_id = 2
) and article_id != 2
order by common_tag_count desc;

Sintaks mungkin perlu sedikit penyesuaian untuk MySQL.

atau ini yang benar-benar berfungsi:;-)

SELECT at1.article_id, Count(at1.tag_id) AS common_tag_count
FROM articles_tags AS at1 INNER JOIN articles_tags AS at2 ON at1.tag_id = at2.tag_id
WHERE at2.article_id = 2
GROUP BY at1.article_id
HAVING at1.article_id != 2
ORDER BY Count(at1.tag_id) DESC;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghitung Pendapatan di MySQL

  2. Backup Database Logis Menggunakan MySQL Shell

  3. Doctrine 2 dan tabel tautan Banyak-ke-banyak dengan bidang tambahan

  4. Apa cara kanonik untuk menarik catatan dari database MySQL yang memiliki bidang terkecil/terbesar?

  5. Pengindeksan MySQL dan Menggunakan filesort