Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL Pobierz X ostatnich wpisów z „niestandardowego” post_type liczenie użytkowników indywidualna liczba niestandardowego post_type

Spróbuj tego;)

Zapytanie 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

Sprawdź to SqlFiddle Wyniki :

|   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 |

Podzapytanie t2 otrzyma maksymalny ID w każdym użytkowniku, gdy user != '1' and post_type = 'custom' , a następnie inner join t1 z t2 na t1.ID = t2.ID and t1.user = t2.user otrzyma nam rekord, który ma max ID przez każdego user w tabeli post . Na przykład:„2783”, „2759”, „2757”, „2683”, „2681”, „2652”, „2630” , „2617”, „2596”, „2215”.

I na koniec order by i limit , oczywiście możesz uzyskać „2783”, „2759”, „2757”, „2683”. Mam nadzieję, że nie pomyliłem twojego pytania.



  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 pobiera datę sprzed n dni jako znacznik czasu

  2. Wybranie wszystkich rekordów sprzed roku do teraz

  3. Jak wyszukiwać w polu daty dla ciągu znaków za pomocą interfejsu JPA Criteria API

  4. MySql, łącząc kolumnę daty i godziny w znacznik czasu

  5. Błąd MySQL 1264:wartość poza zakresem dla kolumny