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

HAVING句で使用しているときにSELECTステートメントから列を省略するにはどうすればよいですか?

    サブクエリをhavingに移動できます 句。ゴードンが答えたように、あなたは持っているを使用しています 2番目のwhereとしての句 、MySQLのみがサポートします。 2番目の条件をwhereに追加することをお勧めします を使用 :

    SELECT e.id
    FROM events e
    WHERE author_id = 32
        AND e.id >= (SELECT MIN(u.id) id
            FROM (SELECT MIN(id) id
                FROM events
                WHERE author_id = 32
                GROUP BY type, post_id, table_code, comment_id, context
                ORDER BY MIN(id) desc 
                LIMIT 15) as u
            ) 
    ORDER BY id DESC
    

    あなたのコメントに基づいて、これは少し簡単でしょう。イベントIDが最も高い15件の投稿を選択します:

    SELECT  id
    FROM    events
    WHERE   author_id = 32
            AND post_id IN
            (
            SELECT  DISTINCT post_id
            FROM    events
            ORDER BY
                    id DESC
            LIMIT   15
            )
    


    1. MySQLのマイナス演算子?

    2. 合計を計算するための最良のアプローチ– SQLServer2012用に更新

    3. MySQLの全文検索で3文字以下の単語を検索

    4. EBS12.2でWebポートを変更する方法