这是我第一次来这里,我的第一个问题很抱歉,如果我问一些愚蠢的话。 我的问题是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**
它可以工作并显示数据。
我希望你理解我的问题。 谢谢!
答案 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始终没有输入。
再次感谢您的时间和支持!