1) SELECT
ROWNUM,
XXXXXB.* FROM (
SELECT
F.LNGDeptPLANDETAILID,
F.LNGDeptPLANID, --科室計劃ID
ft.isWorkStandard isWorkstd
FROM deptPLANDETAIL F
LEFT JOIN FyitemType ft
ON F.LNGFYITEMTYPEID = ft.lngFyItemTypeId
WHERE F.LNGDeptPLANID =1707 ORDER BY F.LNGROWID
) XXXXXB;
2) SELECT
F.LNGDeptPLANDETAILID,
F.LNGDeptPLANID, --科室計劃ID
ft.isWorkStandard isWorkstd
FROM deptPLANDETAIL F
LEFT JOIN FyitemType ft
ON F.LNGFYITEMTYPEID = ft.lngFyItemTypeId
WHERE F.LNGDeptPLANID =1707 ORDER BY F.LNGROWID;
第二句就是把第一句里面的拿出來了 ,但是查詢結果 isWorkstd ,上面為0 下面為 1,
1才是正確的,請問為什么
如果把LEFT JOIN 換成 JOIN ,就正確了,查出來都是 1,沒明白,請大神解釋一下
uj5u.com熱心網友回復:
left join是左連接 右邊沒有結果就只有左邊,join是內連接。兩邊同時滿足連接條件才有結果
uj5u.com熱心網友回復:
查詢的兩個表都是有 1707這個記錄的
uj5u.com熱心網友回復:
而且兩句都是left join查詢出來只有 isWorkstd 欄位不一樣,其他欄位都一樣的轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/66587.html
標籤:高級技術
上一篇:PLS-00103: 出現符號 "V_INDOCNO"在需要下列之一時: language
下一篇:求助 ! 如下是SQLSERVER語法轉換成ORACLE怎么寫?:判斷表中是否有資料, 再決定是否關聯此表的寫法
