0

我想right join在这个 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

有没有更好/正确的方法来做到这一点?

4

1 回答 1

2

你的病情从何而来?

  1. 如果它来自 SQL 之外,为什么不确定是否将联接放入该级别的查询中:

    $qry = "SELECT * FROM post " . ($test ? " RIGHT JOIN ... " : "") . "...";
    
  2. 否则,如果必须在 SQL 中进行测试,我会将不同的语句分开:

    DELIMITER ;;
    
    IF @test THEN
        SELECT * FROM post RIGHT JOIN ... ;
    ELSE
        SELECT * FROM post ... ;
    END IF;;
    
    DELIMITER ;
    
于 2012-04-28T18:21:48.623 回答