首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL条件选择语句?

问MySQL条件选择语句?
EN

Stack Overflow用户
提问于 2011-06-06 22:22:54
回答 4查看 774关注 0票数 1

好的,我有一个客户想要输出系统中一群学生的所有信息。

此输出将导入Excel以供操作。

因此,我的问题是,我想从4个表中输出所有学生的信息

海选排定试镜概况试镜时间

因此,当面试记录下来时,海选表获取并输入连接到学生的任何信息。在那之前,在分局里没有他们的试镜。

所以,我想为每个学生输出一行,上面写着他们的试镜计划是什么时候,如果他们已经有了试镜,那么输入信息,但是如果没有,就把字段留为空白。

到目前为止,我还有些类似的事情

代码语言:javascript
复制
"SELECT ".$fields." FROM profiles p, auditions a, scheduled_auditions s, 
audition_times t WHERE p.id=t.id AND t.id=s.id AND a.id=p.id"

问题是显而易见的。它只会输出有试镜的人。那么,我如何编写条件select/where语句呢?我需要用一个查询输出它,这样当我在excel中打开它时它就可以工作了。

谢谢你们。我很困惑。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-06 22:25:12

您希望执行外部连接;即使连接记录为null,外部联接也会返回结果。

具体来说,在面试表中指定一个左边的外部连接将强制所有学生的记录被退回,甚至那些没有参加面试的记录。

票数 2
EN

Stack Overflow用户

发布于 2011-06-06 22:24:36

您考虑过使用左外部联接吗?

如果使用内部联接将表A和B连接起来,则只能得到A和B中存在的行。如果使用左联接,则A中的所有行都将得到A中的所有行,如果存在这些行中的一些行将有来自B的数据。否则,B中的列将为null。

编辑:A左连接B在逻辑上等同于B右连接A -所以做任何在你头脑中最有意义的事情(谢谢保罗!)

票数 2
EN

Stack Overflow用户

发布于 2011-06-06 22:26:49

听起来你只需要一个外部连接,这就像一个普通的连接,但是在没有匹配键的地方,它只会对每个字段返回NULL。

代码语言:javascript
复制
SELECT * 
FROM profiles p
LEFT OUTER JOIN audition_times t
ON p.id=t.id
LEFT OUTER JOIN scheduled_auditions s
ON t.id=s.id 
LEFT OUTER JOIN auditions a
ON a.id=p.id"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6258715

复制
相关文章

相似问题

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