我正在尝试加入查询中所有表中存在的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
错误。
这是我加入它的方式有问题吗?
答案 0 :(得分:1)
不要使用连接两次,就像你在这里一样:
FULL OUTER JOIN JOIN rooms k
如果速度是您的问题,您可能希望将索引放在您用于加入的cols和where子句中:setid,number1等。