首页 文章

mysql选择连接查询中的列

提问于
浏览
2

Scenario:

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

Structure:

students 表有列: id,firstname, lastname, email, dob, age, gender, mobile, address .

classes 表有列: id,name .

student_classes 表有列: student_id,class_id

现在我加入了3个表:学生, class ,带有内连接查询的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 回答

  • 1

    你可以这样做:

    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
    
  • 4

    将该列放在 SELECT 子句中而不是 * .

    SELECT students.firstname FROM ...
    

    如果您仍然需要其他表中的列,也可以列出它们,或使用 tablename.*

  • 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

  • 2

    试试这个查询:

    select students.firstname from ....
    

相关问题