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

Tìm kiếm các thẻ phù hợp (Tìm kiếm Tương tự) với MySQL và Các ràng buộc

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;

Khi tìm kiếm những gì 'tương tự' với 123 (Mục-B trong ví dụ của bạn), đầu ra sẽ

Item-A, 2
Item-C, 1

Đây là bản quét đầy đủ articletag . Vì vậy, tôi đã chú ý đến các mẹo trong cuộc thảo luận của tôi về nhiều:nhiều ánh xạ .

Nếu bạn cần lấy thông tin về các bài báo sau khi thực hiện truy vấn, hãy sử dụng nó như một bảng 'dẫn xuất'; ví dụ:

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

(Bạn có thể xóa ORDER BY từ truy vấn bên trong, vì nó sẽ bị bỏ qua theo sở thích đối với ORDER BY bên ngoài .)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Các phương pháp khác nhau để biết người dùng hiện tại

  2. Lỗi hệ thống RMySQL:10060

  3. Giá trị hộp kiểm vào truy vấn mysql

  4. Sắp xếp theo thứ tự nhiều vấn đề với nhiều truy vấn

  5. Bắt đầu xem kết quả truy vấn trước khi kết thúc truy vấn