这是我第一次来这里,也是我的第一个问题,如果我问了一些愚蠢的问题,我很抱歉。我的问题是针对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。
所以这个查询是
**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**它没有显示任何内容。我尝试了左连接,但什么都没有....但如果我这么做
**SELECT T1.*, T2.*
FROM T1
INNER JOIN T2 ON T2.t2_id=T1.external_id**它工作并显示数据。
我希望你能理解我的问题。谢谢!
发布于 2016-11-27 06:40:52
试一试:
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?
发布于 2016-11-27 06:44:07
您应该有三列来保存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发布于 2016-11-27 21:44:57
感谢你们的回答,我使用了LEFT JOIN,现在它起作用了。但问题是,在我的数据库中,它是一个大写字母,并且内部和左侧都无法工作。
Inner不能正确使用,因为并不总是有来自t2、t3、t4的条目。
再次感谢您的时间和支持!
https://stackoverflow.com/questions/40823815
复制相似问题