情景:
学生可以在一门或多门课程中注册。
结构:
学生表格包含以下列: ID,名字,姓氏,电子邮件,dob,年龄,性别,移动设备,地址。
类表包含以下列: ID,名称。
student_classes 表包含以下列: student_id,class_id
现在我加入了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
但我不想要学生表中的所有栏目。我只想要名字。 如何修改连接查询?
答案 0 :(得分:4)
你可以这样做:
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
答案 1 :(得分:2)
将该列放在SELECT
子句中,而不是*
。
SELECT students.firstname FROM ...
如果您仍想要其他表中的列,也可以列出它们,或使用tablename.*
答案 2 :(得分:2)
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
答案 3 :(得分:1)
尝试此查询:
select students.firstname from ....