Помогите обьединить запросы mysql

lutskboy
На сайте с 22.11.2013
Offline
170
263

Здравствуйте.

Есть запрос вида

SELECT p.id, e.news_id, e.news_read from dle_post p LEFT JOIN dle_post_extras e on p.id=e.news_id

и другой

SELECT news_id, color, count FROM dle_colors where color='cc9900' ORDER BY count DESC

Как их обьединить в один запрос.

siv1987
На сайте с 02.04.2009
Offline
427
#1

SELECT p.id, e.news_id, e.news_read, c.color, c.count FROM dle_post p LEFT JOIN dle_post_extras e ON p.id=e.news_id LEFT JOIN dle_colors c ON (c.news_id=p.id) WHERE c.color='cc9900' ORDER BY c.count DESC

Nunan
На сайте с 15.08.2008
Offline
78
#2

Требуется объяснение что нужно получить в результате

так мне кажется правильней будет:

SELECT p.id, e.news_id, e.news_read, c.color, c.count FROM dle_post p LEFT JOIN dle_post_extras e ON p.id=e.news_id LEFT JOIN dle_colors c ON (c.news_id=e.news_id AND c.color='cc9900')

lutskboy
На сайте с 22.11.2013
Offline
170
#3

ну да. нужно было уточнить.

но спасибо siv1987. его запрос выводит то что мне нужно

siv1987
На сайте с 02.04.2009
Offline
427
#4
Nunan:
так мне кажется правильней будет:

Не правильнее если нужно выбрать только темы определенного цвета. ON - условие объедение таблиц, а с LEFT JOIN селект записи произойдет независимо от того, есть ли в присоединяемой таблицы запись с таким условием или нет, в последнем случае поля просто заполняются значением null. В таком случае нужно либо юзать INNER JOIN, либо условие WHERE c.color IS NOT NULL

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий