首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不存在关系的MySQL表中选择所有行为空单元格。

问从不存在关系的MySQL表中选择所有行为空单元格。
EN

Stack Overflow用户
提问于 2015-11-04 13:53:54
回答 1查看 1K关注 0票数 0

例如,如果我有两个名为“教师”、“课程”和“课程”的表,外键“teacher_ID”指的是“教师”表中的外键“”,那么如果没有与其连接的课程,如何从“教师”all的相应课程中选择“所有”行?我只能让MySQL告诉我老师们有一个或多个附加的课程。

这有可能没有左加入吗?我在谷歌上什么都找不到..。

编辑I对左JOIN关键字的机制感兴趣。但既然似乎没有别的选择,我可以说是结案了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 14:10:38

正确的方法是使用LEFT JOIN。这样,如果不匹配,您将得到(teacher_id), null

LEFT关键字返回左侧表(教师)中的所有行,即使右侧表中没有匹配项(课程)。

代码语言:javascript
复制
 SELECT teacher.teacher_ID, lesson.lesson_ID
 FROM teachers
 LEFT JOIN lessons
   ON teacher.teacher_ID = lesson.teacher_ID

如果您想要模仿LEFT JOIN,首先使用JOIN查找匹配的元素。并使用UNION添加值为NULL的其余部分。

代码语言:javascript
复制
 SELECT teacher.teacher_ID, lessons.lesson_ID
 FROM teachers
 JOIN lessons
   ON teacher.teacher_ID = lessons.teacher_ID

 UNION

 SELECT teacher.teacher_ID, null as lesson_ID
 FROM teachers
 WHERE NOT EXISTS ( SELECT 1
                    FROM lessons 
                    WHERE lessons.teacher_id = teacher.teacher_id)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33523641

复制
相关文章

相似问题

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