sql >> データベース >  >> RDS >> Mysql

SQL「カスタム」post_typeからX個の最後のエントリを取得します。カスタムpost_typeのユーザーの個々の数をカウントします。

    これを試してください;)

    クエリ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
    

    このSqlFiddleを確認してください結果

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

    サブクエリt2 最大のIDを取得します user != '1' and post_type = 'custom'の場合の各ユーザー 、次にinner join t1.ID = t2.ID and t1.user = t2.user上のt2を含むt1 最大のIDを持つレコードを取得します 各user テーブルpost 。例:「2783」、「2759」、「2757」、「2683」、「2681」、「2652」、「2630」、「2617」、「2596」、「2215」。

    最後にorder by およびlimit もちろん、「2783」、「2759」、「2757」、「2683」を取得できます。私があなたの質問を間違えなかったことを願っています。



    1. 大きなSQLファイルdjangoをインポートする

    2. これ以上のSPUはありません

    3. SQL SERVER – SQLインジェクション攻撃を回避するために動的SQLを処理する1つのトリック?

    4. データファイルとStatisticaのマージ、パート1