2013-04-25 2 views
0

У меня есть три довольно простых запроса, которые, я считаю, могут быть выполнены в одном запросе, но я не могу понять это. Вот запросы:Объединение трех запросов в один

$idSQL = "SELECT website_id FROM websites WHERE website_url = :webURL LIMIT 1 

$featureSQL = "SELECT feature_id FROM feature_website WHERE website_id = :webID"; 

$sql = "SELECT feature_name, feature_start, feature_end, feature_headline, feature_text, feature_photoHor, feature_photoVert, feature_photoSquare FROM features WHERE feature_id = :featID"; 

Это дает мне ожидаемый результат: enter image description here

Итак, я попытался объединить запросы (возможно, с использованием неправильного соединения) в этом:

$sql = "SELECT f.feature_name, f.feature_start, f.feature_end, f.feature_headline, f.feature_text, f.feature_photoHor, f.feature_photoVert, f.feature_photoSquare FROM features LEFT JOIN feature_website fw ON f.feature_id = fw.feature_id LEFT JOIN websites w ON fw.website_id = w.website_id AND w.website_url = :webURL"; 

Что я пропал без вести?

+2

Каков результат объединенного запроса? Ошибка? Ничего? Дублировать строки? –

ответ

2

Попробуйте этот запрос:

$sql = " 
SELECT f.feature_name, f.feature_start, f.feature_end, f.feature_headline, f.feature_text, f.feature_photoHor, f.feature_photoVert, f.feature_photoSquare 
FROM 
    websites w 
     LEFT JOIN feature_website fw ON fw.website_id = w.website_id 
     LEFT JOIN features f ON f.feature_id = fw.feature_id 
WHERE 
    w.website_url = :webURL 
"; 

Может быть, вы могли бы использовать регулярные JOIN в случае, если вы не хотите, чтобы показать какой-то результат, если нет функции для вашего сайта.

+1

Это работает великолепно! Благодаря! –

Смежные вопросы