@Steely

Как можно сделать выборку одним запросом mysql?

Есть две таблицы, мне нужно выбрать все записи из 'news' + поле 'url' из второй таблицы (связь по news_id) чтобы main_img было равно 1, а остальные записи (таблицы news_img) где оно 0 не отображались.

При этом, если у новости нет записей в таблице news_img то она тоже должна отображаться, а поле url = NULL

Т.е. выбрать все новости с изображением которое отмечено как главное, если нет такого изображения, то просто отобразить новость. Можно ли это осуществить одним запросом?

CREATE TABLE IF NOT EXISTS `news` (
`title` tinytext NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
)

CREATE TABLE IF NOT EXISTS `news_img` (
`news_id` int(11) NOT NULL,
`url` varchar(80) NOT NULL,
`main_img` tinyint(1) NOT NULL DEFAULT '0',
)
  • Вопрос задан
  • 2407 просмотров
Решения вопроса 1
@Steely Автор вопроса
Пока писал вопрос сам допер:

SELECT * FROM news 
LEFT JOIN news_img ON (news_img.news_id = news.id AND news_img.main_img = 1)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы