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

Как мога да пропусна колона от израза SELECT, докато го използвам в клауза HAVING?

Можете да преместите подзаявката в having клауза. Както Гордън отговори, вие използвате having клауза като второ where , който поддържа само MySQL. По-добре е да добавите второто условие към where с and :

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

Въз основа на вашия коментар това би било малко по-лесно. Той избира 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:списък на сумата за няколко условия в един SQL оператор

  2. MySQL през 2018 г.:Какво има в 8.0 и други наблюдения

  3. SQL заявката не показва първия резултат?

  4. Доктрина 2 Близка връзка

  5. MySQL заявка - Записи между днес и последните 30 дни