這就是我嘗試寫的查詢
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)
這是錯誤
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