Извлечение данных из 2 таблиц с именем пользователя вместо идентификатора

#mysql #sql #select

#mysql #sql #выберите

Вопрос:

У меня есть две таблицы

 users
student_id username
         1 Alex
         2 Tom
         3 Max

answers
exercise_done student_id
            4          1
            5          1 
            6          2
  

В таблице ‘пользователи’ указано имя пользователя с соответствующим идентификатором.
То, что я пытаюсь сделать, это отобразить все данные из таблицы ‘answers’ на php, но в столбце student_id я хотел бы отобразить имя пользователя. Я знаю, как отобразить таблицу «ответы», но я хотел бы отобразить в столбце student_id имя пользователя. Для отображения таблицы ‘ответы’ это то, что у меня есть:

 SELECT exercise_done, student_id from answers
  

Ответ №1:

Мы называем это объединением :

 SELECT A.exercise_done, U.student_id, U.username
FROM answers AS A
JOIN users AS U
    ON U.student_id = A.student_id
  

Вот почему в модели отношений вам нужен unique для наличия внешних ключей в таблицах. С ними вы можете сделать объединение следующим образом.

Существует несколько типов соединений, но этот подходит для вас.

Ответ №2:

Вам нужно объединение:

 SELECT exercise_done, username
FROM   answers a
JOIN   users u ON a.student_id = u.student_id
  

Ответ №3:

Вы можете сделать это с помощью inner join.

 select username, exercise_done from users u JOIN answers a ON u.student_id=a.student_id;