我在下面的查询中需要来自T3 Table的所有记录。 如何使用左连接语句来解决我在oracle中的问题。
SELECT COUNT(*)
FROM R
LEFT JOIN RD
ON (R.ID = RD.RES_INFO_ID)
LEFT JOIN RES
ON (R.SEL_EVL_RES_ID = RES.ID)
LEFT JOIN S
ON (S.ID = R.SEL_EVL_ID)
LEFT JOIN D
ON (RD.DEC_DET_ID = D.ID)
LEFT JOIN M
ON (S.EVL_MAS_ID = M.ID)
LEFT JOIN P_RES
ON (P_RES.PRS_ID = RES.PRS_ID)
LEFT JOIN P_MAS
ON (P_MAS.PRS_ID = M.PRS_ID)
LEFT JOIN P_EVL
ON (P_EVL.PRS_ID = S.PRS_ID)
LEFT JOIN P
ON (P.EVL_MAS_ID = M.ID)
LEFT JOIN DM
ON (DM.EVL_RES_INF_DET_ID = RD.ID);
提前致谢
答案 0 :(得分:0)
如果您需要T3
中的所有记录,那么它应该是FROM
子句中的第一个表。所有连接都应该是LEFT JOIN
s。我认为你打算:
SELECT COUNT(*)
FROM T3 R LEFT JOIN
T1 S
ON S.ID = R.SELF_EVALUATION_ID LEFT JOIN
T2 RD
ON RD.EVL_RESOURCE_INFO_ID = R.ID LEFT JOIN
T4 RES
ON R.SELF_EVALUATION_RESOURCE_IDRES.ID LEFT JOIN
T5 M
ON S.EVALUATION_MASTER_ID = M.ID LEFT JOIN
T6 D
ON RD.DECENCY_DETAIL_ID = D.ID LEFT JOIN
T7 P
ON P.EVALUATION_MASTER_ID = M.ID LEFT JOIN
T8 DM
ON DM.EVL_RES_INFO_DETAIL_ID = RD.ID;
将来,请遵循一个简单的规则:从不在FROM
子句中使用逗号。 始终对JOIN
子句中的连接条件使用显式ON
语法。