【发布时间】:2017-08-04 19:23:48
【问题描述】:
当我尝试加入所有 4 个表时,以下查询不起作用(运行需要一个多小时,我必须最终终止查询而不返回任何数据)。 它在表 1,2 和 3 加入时有效,然后如果我尝试表 1,2 和 4 加入,但在我尝试加入以下所有 4 个表时不起作用。
Select * From
(Select
R.ID, R.MId, R.RId, R.F_Name, R.F_Value, FE.FullEval, M.Name, RC.CC
FROM Table1 as R
Inner Join Table2 FE
ON R.ID = FE.RClId and R.MId = FE.MId and R.RId = FE.RId
Inner Join Table3 as M
ON R.MId = M.MId and FE.MId = M.MId
Inner Join Table4 as RC
ON R.RId = RC.RId and FE.RId = RC.RId and FE.Date = RC.Date
) AS a
注意: 1) RId 在表 3 中不可用。 2) 表 4 中没有 MId。
感谢您的帮助。
【问题讨论】:
-
尝试使用
LEFT JOIN而不是INNER JOIN -
not working as expected是什么意思? -
有什么问题?你收到一张空桌子吗?查询是否崩溃?
-
很抱歉错过了那条信息。运行需要一个多小时,我最终必须在不返回任何数据的情况下终止查询。
-
如果您想提高此查询的性能,请补充有关您正在使用的数据库(oracle、slq-server、mysql 等)的信息,因为每个产品的性能提高方法有些不同。还请生成查询的查询计划(解释计划、执行计划)并将其附加到问题中。将
[query-optimization]标签附加到您的问题可能是个好主意。
标签: sql sql-server join query-optimization jointable