首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL中的3个表中选择几个字段,但该字段必须不需要在第三个表中存在

从MySQL中的3个表中选择几个字段,但该字段必须不需要在第三个表中存在
EN

Stack Overflow用户
提问于 2015-02-28 20:25:25
回答 1查看 27关注 0票数 0

我有三张桌子,分别叫学生,student_lessons和student_image。我想选择学生,学生的课程,并显示学生的形象,如果有。在一个查询中是否有处理它的方法?

尝试选择学生id,学生姓名,学生课程(必须存在)和学生形象路径,如果存在学生形象pic_id

代码语言:javascript
复制
# TABLE `students`
id | name | surname
1  : John : Malkovich
2  : John : Smith

# TABLE `students_lessons` ( no AI id here)
student_id | lesson | note
1          : math   : A
1          : geo    : B
2          : math   : C

# TABLE `students_image`
pic_id | student_id | image_path 
1      :  1         : some path       
2      :  1         : some path
3      :  2         : some path   

如果我尝试使用joint进行查询,如果没有找到任何图片,则返回零。如果在单个查询中存在,如何进行查询以选择图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-28 20:32:58

代码语言:javascript
复制
SELECT students.* 
FROM students
JOIN students_lessons ON (students_lessons.student_id = students.id)
LEFT JOIN students_image ON (students_image.student_id = students.id)

或者,如果您只关心图像是否存在:

代码语言:javascript
复制
SELECT students.* 
FROM students
JOIN students_lessons ON (students_lessons.student_id = students.id)
WHERE EXISTS (
   SELECT si.* 
   FROM students_image si
   WHERE si.student_id = students.id
)

我想你要找的是LEFT JOIN。只需将SELECT修改为链接即可。此查询选择所有学生,并有课程,他们是否有一个形象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28786470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档