2016-01-18 4 views
0

Я, кажется, немного тупик ... Я пытаюсь получить данные из трех таблиц, но они не все взаимосвязаны - одна таблица относится к каждой из два других.MySQL - Как получить данные из 3 таблиц

  • Exams_taken

    • ID
    • exam_id
    • user_id
  • Exams_available

    • ID
    • exam_name
  • Пользователи

    • ID
    • user_name

Я хочу, чтобы создать выходной файл, где я имею exam_id, exam_name и user_name.

Я думал, что смогу выяснить, как это сделать как один запрос, но я потерян. Является ли это возможным? Или мне нужно сделать запрос на «Exams_available», а затем цикл со вторым запросом для JOIN «Exams_taken» и «Users»?

Спасибо, Скотт

+0

вас никогда нужны петли. вы присоединились бы к трем таблицам вместе. BTW столбец ID в таблице exams_taken является избыточным, нужны только два других столбца. – Niagaradad

+0

Ах, похоже, я написал, что неправильно ... столбец идентификатора, что мне нужно в выводе, а не exam_id. – ScottM

+0

Какая колонка 'ID'. Есть одна из них во всех трех таблицах ????? – RiggsFolly

ответ

2

Если вам нужен выход, который содержит exam_id, exam_name и user_name я могу предположить, что вам нужны экзамены принимаются, так почему бы не только запрос, как это:

SELECT exam_id, E.exam_name, U.user_name FROM Exams_taken as ET 
INNER JOIN Exams_available as E on ET.exam_id = E.exam_id 
INNER JOIN Users as U on ET.user_id = U.user_id 
+0

Спасибо ... так что, поскольку я неправильно написал это, он будет работать как: 'SELECT ID, exam_id, E.exam_name, U .user_name FROM Exams_taken as ET INNER JOIN Exams_available as E на ET.exam_id = E.exam_id INNER JOIN Пользователи как U на ET.user_id = U.user_id' - тогда я могу просто пропустить, чтобы создать список завершенных экзаменов со ссылками на отчеты (с использованием ID) – ScottM

+0

@ScottM Да, это будет работать, просто для уточнения, 'ID' будет идентификатором' Exam_taken' –

+0

да, это так. Большое вам спасибо ... теперь я посмотрю, смогу ли я найти выход! ;-) – ScottM

Смежные вопросы