У меня есть две таблицы: деятельность и activity_images и ключевое ограничение иностранного является:Mysql - левый присоединиться вопросы, где положение
activities.id = activitiy_images.activity_id
Теперь некоторые действия имеют изображения, а некоторые нет, что означает для конкретной деятельности .id, может не быть записи в actions_images.
Я хочу получить все данные по умолчанию, независимо от данных, имеющихся в Activity_images.
Ниже мой запрос:
select a.*,a.id as 'activity_id',b.*
from activities a
left join activity_images b on a.id = b.activity_id
where b.image_type='main' LIMIT 0, 9
Этот вопрос с выходом. В приведенном выше запросе даются только данные для совпадающих строк и где b.image_type = 'main'. Он не выводит строки, для которых нет записи в actions_images.
Я хочу все строки, но в то же время я хочу убедиться, что b.image_type = 'main', потому что есть другие значения для image_type, и я просто хочу захватить значения для image_type = 'main' (If у всех есть матч).
Прошу совета. Заранее спасибо.
Если нет соответствующей строки в activity_images тогда как может image_type = главное? Подумайте об этом логически. – Devon
Если (неформально), вы хотите, чтобы все строки без объектов activity_images и строк с активными_имяями, тип которых является основным, вы должны изменить предложение where на 'where coalesce (b.image_type, 'main') = 'main''. Если это не ваше намерение, ср. Комментарий Девон. – collapsar
thats весь пункт .... я имею в виду..если во всех совпадениях строк они должны совпадать для image_type = 'main', если они не возвращают их как null.Isnt, что возможность? – user1411837