Heim  >  Fragen und Antworten  >  Hauptteil

LIMIT-Fehler beim Ausführen der Abfrage

Das ist die Abfrage, die ich zu schreiben versucht habe

select posts.*  ,users.* 
FROM posts
INNER JOIN users
   ON posts.user_id = users.id
   WHERE posts.user_id != '27'
   AND posts.pid EXISTS(SELECT post_id FROM favourites WHERE posts.pid=favourites.post_id)

Das ist ein Fehler

select posts.*  ,users.* 
FROM posts
INNER JOIN users
   ON posts.user_id = users.id
   WHERE posts.user_id != '27'
   AND posts.pid EXISTS(SELECT post_id FROM favourites WHERE posts.pid=favourites.post_id) LIMIT 0, 25
MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXISTS(SELECT post_id FROM favourites WHERE posts.pid=favourites.post_id) LIM...' at line 6

P粉668146636P粉668146636206 Tage vor360

Antworte allen(1)Ich werde antworten

  • P粉276876663

    P粉2768766632024-03-28 09:09:56

    您必须使用 IN 而不是 ÈXISTS。

    exists 的语法不同

    SELECT 
        posts.*, users.*
    FROM
        posts
            INNER JOIN
        users ON posts.user_id = users.id
    WHERE
        posts.user_id != '27'
            AND posts.pid IN (SELECT 
                post_id
            FROM
                favourites
            WHERE
                posts.pid = favourites.post_id)
    LIMIT 0 , 25

    这将检查是否有一个最喜欢的帖子 id

    SELECT 
        posts.*, users.*
    FROM
        posts
            INNER JOIN
        users ON posts.user_id = users.id
    WHERE
        posts.user_id != '27'
            AND EXISTS (SELECT 
                post_id
            FROM
                favourites
            WHERE
                posts.pid = favourites.post_id)
    LIMIT 0 , 25

    Antwort
    0
  • StornierenAntwort