Вывести данные из двух таблиц, причём данные из второй таблицы не всегда имеются - MySQL

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть две таблицы. Первая - quiz_title (первый скриншот) Вторая - xf_quiz_history (второй скриншот) Задача: вывести все данные из quiz_title, но при этом вывести данные из второй таблицы (если таковы имеются). Собственно, в обоих таблицах есть quiz_id, по которому нужно искать данные из второй таблицы и есть поле user_id во второй таблице, означающее ID пользователя, который прошёл тест.
SELECT quiz_title.*, quiz_history.finish_date AS finish_date
        FROM quiz_title LEFT OUTER JOIN quiz_history 
        ON quiz_title.quiz_id = quiz_history.quiz_id
        WHERE quiz_history.user_id = ?
То есть, нужно спарсить finish_date из второй таблицы, если в ней имеется запись quiz_title.quiz_id = quiz_history.quiz_id и user_id = ? (плейсхолдер). А если запись отсутствует, то finish_date должно быть NULL. Как должен выглядеть мой запрос? А если использовать текущий запрос, то он выведет правильно только тогда, когда есть необходимая запись во второй таблице. Если ее нет, то система ничего не выведет вообще.

Решение задачи: «Вывести данные из двух таблиц, причём данные из второй таблицы не всегда имеются»

textual
Листинг программы
SELECT quiz_title.*, quiz_history.finish_date AS finish_date
        FROM quiz_title LEFT OUTER JOIN quiz_history 
        ON quiz_title.quiz_id = quiz_history.quiz_id AND quiz_history.user_id = ?

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы