MySQL выбрать столбцы в запросе соединения - PullRequest
2 голосов
/ 27 января 2011

Сценарий:

Учащиеся могут зарегистрироваться в одном или нескольких классах.

Структура:

студенты таблица содержит столбцы: идентификатор, имя, фамилия, адрес электронной почты, dob, возраст, пол, мобильный телефон, адрес .

классы таблица содержит столбцы: id, name .

student_classes таблица содержит столбцы: student_id, class_id

Теперь Iam объединяет 3 таблицы: студенты, классы,student_classes с внутренним запросом соединения:

select *
from students inner join student_classes 
  on students.id=student_classes.student_id  inner join classes
  on student_classes.class_id=classes.id

Но я не хочу, чтобы все столбцы из таблицы студентов.Я просто хочу имя.Как я могу изменить запрос на присоединение?

Ответы [ 4 ]

4 голосов
/ 27 января 2011

Вы можете сделать это так:

s  = students table
sc = student_classes
c  = classes

Запрос:

select 
    sc.student_id,
    s.firstname,
    s.lastname
from students s
inner join student_classes sc on sc.student_id = s.id
inner join classes c on c.id = sc.class_id
2 голосов
/ 27 января 2011
SELECT students.firstname FROM students
INNER JOIN student_classes ON students.id = student_classes.student_id
INNER JOIN classes ON student_classes.class_id = classes.id

Для справки: http://dev.mysql.com/doc/refman/5.1/de/select.html

2 голосов
/ 27 января 2011

Поместите этот столбец в предложение SELECT вместо *.

SELECT students.firstname FROM ...

Если вам все еще нужны столбцы из других таблиц, вы можете также перечислить их или использовать tablename.*

1 голос
/ 27 января 2011

Попробуйте этот запрос:

select students.firstname from ....
...