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

Truy vấn MySQL phức tạp đang đưa ra kết quả không chính xác

select * from (
    select a.idArticle, a.content, max(`order`) max_order
    from words_learned wl
    join words w on w.idwords = wl.idwords
    join article a on a.idArticle = w.idArticle
    where wl.userId = 4
    group by a.idArticle
) a
left join (
    select count(*) unknown_count, w2.idArticle from words w2
    left join words_learned wl2 on wl2.idwords = w2.idwords
    and wl2.userId =  4
    where wl2.idwords is null
    group by w2.idArticle
) unknown_counts on unknown_counts.idArticle = a.idArticle
where unknown_count is null or unknown_count < 10
order by max_order desc
limit 100

http://sqlfiddle.com/#!2/6944b/9

Bảng dẫn xuất đầu tiên chọn các bài viết duy nhất mà một người dùng nhất định biết một hoặc nhiều từ cũng như order tối đa giá trị của những từ đó. Giá trị thứ tự tối đa được sử dụng để sắp xếp các kết quả cuối cùng để các bài viết có chứa các từ thứ tự cao xuất hiện đầu tiên.

Bảng dẫn xuất thứ hai đếm số từ mà một người dùng nhất định không biết cho mỗi bài viết. Bảng này được sử dụng để loại trừ bất kỳ bài viết nào có 10 từ trở lên mà người dùng không biết.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi màu phông chữ nhận xét trong truy vấn MySQL Workbench

  2. Làm cách nào để tìm nạp bản ghi đầu tiên và cuối cùng của bản ghi được nhóm trong truy vấn MySQL với các hàm tổng hợp?

  3. mysql Đếm nhiều lần xuất hiện của các mục được ghép

  4. Thực hiện theo thiết kế bảng cơ sở dữ liệu người dùng

  5. Trình điều khiển PDO MySQL trên Mac