PHP / SQL: используя только один запрос, ВЫБЕРИТЕ строки из двух таблиц, если данные находятся в обеих таблицах, или просто ВЫБЕРИТЕ из одной таблицы, если нет - PullRequest
1 голос
/ 27 июля 2010

У меня есть две таблицы рейтинга / голосов. Один для пользовательских голосов и статистики, а другой для внешних голосов. Внешняя таблица голосов всегда содержит данные, потому что она имеет DEAFULT = 0, но голоса пользователей содержат данные, только если кто-то проголосовал за этот конкретный идентификатор.

Итак, я делаю что-то вроде этого:

    $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 Ответ

5 голосов
/ 27 июля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...