Опитайте това;)
Запитване 1 :
изберете t1.*, t2.userCnt от `posts` t1inner join ( изберете max(`ID`) като `ID`, `user`, count(1) като userCnt от `posts`, където `user` !='1' и `post_type` ='custom' група от `user`) t2 на t1.`ID` =t2.`ID` и t1.`user` =t2.`user`подреждане по t1.`ID ` ограничение за описване 4
Проверете този SqlFiddle Резултати :
<предварителен код>| ID | потребител | Дата | заглавие | състояние | тип_пост | userCnt ||------|------|---------------------|-------|--- --------|-----------|---------|| 2783 | 5 | 24.05.2016 11:24:08 | Заглавие | публикувани | по поръчка | 2 || 2759 | 3 | 2016-05-07 14:00:22 | Заглавие | публикувани | по поръчка | 3 || 2757 | 12 | 2016-05-02 12:41:00 | Заглавие | публикувани | по поръчка | 2 || 2683 | 15 | 22.04.2016 20:27:45 | Заглавие | публикувани | по поръчка | 2 |
Подзаявка t2
ще получи максималния ID
във всеки потребител, когато user !='1' и post_type ='custom'
, след това вътрешно присъединяване
t1 с t2 на t1.ID =t2.ID и t1.user =t2.user
ще ни предостави запис, който има максимален ID
от всеки потребител
в таблица post
. Като:"2783", "2759", "2757", "2683", "2681", "2652", "2630" , "2617", "2596", "2215".
И последно с подреждане по
и лимит
, разбира се, можете да получите "2783", "2759", "2757", "2683". Надявам се, че не съм сбъркал въпроса ви.