首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >INNER JOIN使用和?

INNER JOIN使用和?
EN

Stack Overflow用户
提问于 2012-10-02 20:37:59
回答 1查看 106关注 0票数 2

我正在尝试内连接3个表。第一个连接(单独)完美地工作,并返回预期的3行。然后,我添加了另一个连接,即匹配来自第三个表的name列。我希望再次只有3行,但不是。我得到了一大堆行。

这是真的吗?

代码语言:javascript
复制
select
students.*
FROM classes
INNER JOIN students ON students.id = classes.id
INNER JOIN books ON books.obj_num_position = students.object_table_obj_num_pos_ref

我发现自己又回到了从X,Y,Z开始使用...和WHERE x.id = z.id以及WHERE and WHERE .....而不是显式连接,因为它更容易进行故障排除

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-02 20:41:42

INNER JOIN将返回与三个表中匹配的行数相同的行数。在您的例子中,students.object_table_obj_num_pos_ref似乎与books.obj_num_position有一对多的关系,因此会返回与任何students.object_table_obj_num_pos_ref匹配的每个students.id,其中任何一个JOIN返回的classes是在前一个classes中返回的。

如果需要限制到其中的一个子集,则仍然可以通过WHERE子句来实现,在该子句中可以指定限制条件。

顺便说一句,如果您在WHERE子句中使用了隐式连接,除了连接条件之外没有其他条件,那么您将得到完全相同的结果。

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

https://stackoverflow.com/questions/12690394

复制
相关文章

相似问题

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