Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL Получаване на X последни записи от 'персонализиран' post_type с броене на потребители индивидуален брой персонализиран post_type

Опитайте това;)

Запитване 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". Надявам се, че не съм сбъркал въпроса ви.



  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 в стойности, разделени със запетая

  2. Трябва ли да използвам PDO PARAM_LOB или PARAM_STR за MySQL TEXT тип?

  3. Генерирайте (т.е. напишете) колона с индекс с номер на ред в MySQL

  4. пост преименувано име на файл от качване в база данни

  5. Как работи нещо OR DIE() в PHP?