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

SQL Nhận X các mục nhập cuối cùng từ post_type 'tùy chỉnh' đếm từng người dùng số post_type tùy chỉnh

Hãy thử cái này;)

Truy vấn 1 :

select t1.*, t2.userCnt
from `posts` t1
inner join (
    select max(`ID`) as `ID`, `user`, count(1) as userCnt
    from `posts`
    where `user` != '1'
    and `post_type` = 'custom'
    group by `user`
) t2 on t1.`ID` = t2.`ID` and t1.`user` = t2.`user`
order by t1.`ID` desc limit 4

Kiểm tra SqlFiddle này Kết quả :

|   ID | user |                Date | title |    status | post_type | userCnt |
|------|------|---------------------|-------|-----------|-----------|---------|
| 2783 |    5 | 2016-05-24 11:24:08 | Title | published |    custom |       2 |
| 2759 |    3 | 2016-05-07 14:00:22 | Title | published |    custom |       3 |
| 2757 |   12 | 2016-05-02 12:41:00 | Title | published |    custom |       2 |
| 2683 |   15 | 2016-04-22 20:27:45 | Title | published |    custom |       2 |

Truy vấn con t2 sẽ nhận được ID tối đa trong mỗi người dùng khi user != '1' and post_type = 'custom' , sau đó inner join t1 với t2 trên t1.ID = t2.ID and t1.user = t2.user sẽ nhận được cho chúng tôi bản ghi có tối đa ID bởi mỗi user trong bảng post . Như:"2783", "2759", "2757", "2683", "2681", "2652", "2630", "2617", "2596", "2215".

Và cuối cùng với order bylimit , tất nhiên bạn có thể nhận được "2783", "2759", "2757", "2683". Hy vọng tôi không nhầm câu hỏi của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python, chuyển đổi ký tự 4 byte để tránh lỗi MySQL Giá trị chuỗi không chính xác:

  2. Tinyint vs Bit?

  3. Cơ sở lý luận về MySQL Fulltext Stopwords

  4. thay đổi auto_increment trong cùng một bảng bằng cách sử dụng truy vấn con mysql

  5. JSON mã hóa kết quả MySQL