Heim > Fragen und Antworten > Hauptteil
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粉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