PHP / SQL:只使用一个查询,如果数据在两个表中,则从两个表中选择行,否则只从一个表中选择SELECT

时间:2010-07-27 13:01:10

标签: php mysql select

我有两个评级/投票表。一个用于用户投票和统计,另一个用于外部投票。 外部投票表始终具有数据,因为它具有DEAFULT = 0,但是如果任何用户已经投票支持该特定ID,则用户投票仅包含数据。

所以我这样做:

    $sql = 'SELECT  ratings_stats.votes, ratings_stats.total_value,
                   ratings_stats.view, ratings_stats.fav, ratings_stats.wish,
                   ratings_external.votes, ratings_external.total_value
            FROM ratings_stats, ratings_external
            WHERE ratings_stats.imdbID = ?
            AND ratings_stats.imdbID = ratings_external.imdbID
            LIMIT 1';

我想从两个表中选择数据(如果可用)或者仅形成第二个(外部投票)表,如果没有。

如何在不进行新查询的情况下执行此操作?

1 个答案:

答案 0 :(得分:5)

SELECT  ratings_stats.votes, 
        ratings_stats.total_value,
        ratings_stats.view, 
        ratings_stats.fav, 
        ratings_stats.wish,
        ratings_external.votes, 
        ratings_external.total_value
FROM  ratings_external
LEFT JOIN ratings_stats ON ratings_stats.imdbID = ratings_external.imdbID
WHERE ratings_external.imdbID = ?
LIMIT 1