【问题标题】:PHP/SQL: Using only one query, SELECT rows from two tables if data is in both tables, or just SELECT from one table if notPHP/SQL:仅使用一个查询,如果数据在两个表中,则从两个表中选择行,如果不是,则仅从一个表中选择
【发布时间】:2010-07-27 13:01:10
【问题描述】:

我有两个评分/投票表。一个用于用户投票和统计数据,另一个用于外部投票。 外部投票表始终包含数据,因为它的 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';

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

如何在不进行新查询的情况下做到这一点?

【问题讨论】:

  • @KennyTM:如何使用我提供的数据进行 LEFT JOIN?

标签: php mysql select


【解决方案1】:
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

【讨论】:

  • +1 用于发现正确的连接条件 :-) 我删除了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
相关资源
最近更新 更多