Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sắp xếp các mặt hàng có các thẻ phù hợp theo số lượng các thẻ phù hợp

Hãy thử một cái gì đó như sau:

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;

Cú pháp có thể cần một chút điều chỉnh cho MySQL.

hoặc cái này thực sự hoạt động:;-)

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. Cách tạo Rest API với Spring Boot bằng MySQL và JPA

  2. Các phương pháp hay nhất cho độ dài cột SQL varchar

  3. Làm cách nào để điền vào gridview với mysql?

  4. cách tự động điều chỉnh độ rộng ô trong fpdf bằng php và mysql

  5. MySQL TEXT so với BLOB và CLOB