mysql选择连接查询中的列

时间:2011-01-27 08:02:16

标签: php mysql inner-join

情景:

学生可以在一门或多门课程中注册。

结构:

学生表格包含以下列: 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

但我不想要学生表中的所有栏目。我只想要名字。 如何修改连接查询?

4 个答案:

答案 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

供参考:http://dev.mysql.com/doc/refman/5.1/de/select.html

答案 3 :(得分:1)

尝试此查询:

select students.firstname from ....