首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内部连接4个表

内部连接4个表
EN

Stack Overflow用户
提问于 2016-11-27 06:32:47
回答 3查看 1.5K关注 0票数 0

这是我第一次来这里,也是我的第一个问题,如果我问了一些愚蠢的问题,我很抱歉。我的问题是针对MySQL的。让我解释一下

我有4个表(T1,T2,T3,T4)

T1 (t1_id,external_id)这里我保存了来自T2,T3,T4的id,然后我有了T2 (t2_id,name等...)T3 (t3_id、名称等...)T4 (t4_id、名称等...)

T1已经有来自这些表的一些条目。T2,T3,T4没有什么共同之处,但是T1保留了他们的ID。

所以这个查询是

代码语言:javascript
复制
**SELECT T1.*, T2.*, T3.*, T4.*
FROM T1
INNER JOIN T2 ON T2.t2_id=T1.external_id
INNER JOIN T3 ON T3.t2_id=T1.external_id
INNER JOIN T4 ON T4.t2_id=T1.external_id**

它没有显示任何内容。我尝试了左连接,但什么都没有....但如果我这么做

代码语言:javascript
复制
**SELECT T1.*, T2.*
FROM T1
INNER JOIN T2 ON T2.t2_id=T1.external_id**

它工作并显示数据。

我希望你能理解我的问题。谢谢!

EN

回答 3

Stack Overflow用户

发布于 2016-11-27 06:40:52

试一试:

代码语言:javascript
复制
SELECT T1.*, T2.*, T3.*, T4.*
FROM T1
INNER JOIN T2 ON T2.t2_id=T1.external_id
INNER JOIN T3 ON T3.t3_id=T1.external_id
INNER JOIN T4 ON T4.t4_id=T1.external_id

请注意,我已经更改了T3 & T4的id,我假设它们中不存在t2_id?

票数 0
EN

Stack Overflow用户

发布于 2016-11-27 06:44:07

您应该有三列来保存T1上的每个表id。

T1 (T1_id、T2_id、T3_id、T4_id)

所以当你这样做的时候,内连接应该是这样的:

代码语言:javascript
复制
SELECT * FROM T1
INNER JOIN T2 ON T2.t2_id = T1.t2_id
INNER JOIN T3 ON T2.t3_id = T1.t3_id
INNER JOIN T4 ON T2.t4_id = T1.t4_id
票数 0
EN

Stack Overflow用户

发布于 2016-11-27 21:44:57

感谢你们的回答,我使用了LEFT JOIN,现在它起作用了。但问题是,在我的数据库中,它是一个大写字母,并且内部和左侧都无法工作。

Inner不能正确使用,因为并不总是有来自t2、t3、t4的条目。

再次感谢您的时间和支持!

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

https://stackoverflow.com/questions/40823815

复制
相关文章

相似问题

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