sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg udelade en kolonne fra SELECT-sætningen, mens jeg bruger den i HAVING-sætning?

Du kan flytte underforespørgslen til having klausul. Som Gordon svarede, bruger du having klausul som en anden where , som kun MySQL understøtter. Det er bedre at tilføje den anden betingelse til where med 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

Baseret på din kommentar ville dette være en smule enklere. Den vælger de 15 indlæg med det højeste hændelses-id:

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. Hvordan øger man den maksimale uploadfilstørrelse for LOAD DATA INFILE-forespørgslen?

  2. Er det muligt at bruge Full Text Search (FTS) med LINQ?

  3. MySql bærbar version

  4. Overvåg nye data i MySQL-tabel