INNER JOIN 4表

时间:2016-11-26 22:32:47

标签: mysql inner-join

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

我有4张桌子(T1,T2,T3,T4)

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

T1已经有来自这些表的一些条目。 T2,T3,T4没有什么共同的beetwen他们,但T1导致它保持他们的ID。

所以查询是

**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**

并且它没有显示任何内容。我尝试了LEFT JOIN但没有尝试....但如果我这样做

**SELECT T1.*, T2.*
FROM T1
INNER JOIN T2 ON T2.t2_id=T1.external_id**

它可以工作并显示数据。

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

3 个答案:

答案 0 :(得分:0)

尝试一下:

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&的ID T4,我假设它们中不存在t2_id?

答案 1 :(得分:0)

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

  

T1(T1_id,T2_id,T3_id,T4_id)

所以当你做内连接时会是这样的:

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

答案 2 :(得分:0)

谢谢大家的回答,我使用LEFT JOIN,现在它正在工作。但问题是,这是我的数据库上的大写字母以及INNER和&左边没有工作。

内部使用不正确,因为t2,t3,t4始终没有输入。

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