我想在此 SQL 中执行条件右连接
SELECT *
FROM post
IF 1 = 1 THEN RIGHT JOIN faves ON faves.post_id_fk = post_id; // <== error
END IF;
WHERE post_author_id
LIKE 1
ORDER BY post_timestamp DESC
LIMIT 0, 10
有更好/正确的方法吗?
最佳答案
您的病情从何而来?
如果它来自 SQL 外部,为什么不确定是否将联接放入该级别的查询中:
$qry = "SELECT * FROM post " . ($test ? " RIGHT JOIN ... " : "") . "...";
否则,如果必须在 SQL 中进行测试,我会将不同的语句分开:
DELIMITER ;; IF @test THEN SELECT * FROM post RIGHT JOIN ... ; ELSE SELECT * FROM post ... ; END IF;; DELIMITER ;
关于mysql - 为什么这个 IF THEN SQL 语句会返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10366223/