从更多5个表中连接多个列

时间:2013-11-27 14:56:49

标签: sql

我正在尝试加入查询中所有表中存在的setid(如外键),我也尝试加入仅存在于lecid表中的lec并在parktable表格中以及在周和weekid表格中加入parktime。我还尝试加入roomid表和rooms表中的parktable。所有这些表中的所有setid就像一个外键。我正在寻找一个48596的setid。

我试过了:

select t.slotid, r.number1, t.weekid, t.duration, p.name as DEPName, 
a.name  FROM parktime t

JOIN rooms k ON t.setid = k.setid

JOIN week r ON t.setid = r.setid

JOIN structure w ON t.setid = w.setid


FULL OUTER JOIN LEC p 
ON
t.LECID = p.LECID

FULL OUTER JOIN week r
ON t.weekid = r.weekid

FULL OUTER JOIN structure w 
ON

r.number1 = w.number1

FULL OUTER JOIN rooms k
on
k.roomid = t.roomid

WHERE t.setid  = '48596'

问题是这个查询运行时间太长,并且在结束时,它不会返回结果。 TEMP错误。

这是我加入它的方式有问题吗?

1 个答案:

答案 0 :(得分:1)

不要使用连接两次,就像你在这里一样:

FULL OUTER JOIN JOIN rooms k

如果速度是您的问题,您可能希望将索引放在您用于加入的cols和where子句中:setid,number1等。