Задать вопрос
@noire_night

Как правильно выполнить MySQL запрос с условием?

Есть таблица program - в ней содержаться программы, есть таблица form - в ней содержаться формы и есть сводная таблица program_form - в ней содержаться связи программ и их форм.
Выбирается программа по id_program, и выводятся все существующие формы и если в сводной таблице есть связь программы и формы то рядом с названием формы в колонке is_checked должно выводиться либо 1 (если есть связь в сводной таблице) или 0 (если связи нет).
Сейчас пробую сделать вот так:
SELECT type_form, IF (EXISTS(SELECT type_form FROM form), 0, 0) AS is_checked FROM form 
UNION
SELECT type_form, IF (EXISTS(SELECT id_program_form FROM program_form WHERE id_program=1), 1, 0) AS is_checked FROM form 
LEFT JOIN program_form ON form.id_form = program_form.id_form WHERE form.id_form = program_form.id_form && program_form.id_program = 1;

Получаю вот такой результат:
5c0e84b9489b5081691362.jpeg
В данном случае в сводной таблице есть 2 связи, как избежать повторение названия форм, то есть если есть форма с 1 то не должно быть такой же формы с 0?
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы