我試圖從基於修訂號的各種表中提取數據,我只想查看小於主表中最小轉速的值,而且如果修訂版號不匹配或不可用我仍然希望看到空。如何將不匹配返回爲空值
T1
Id t1_Value Rev
1 ABC 123
2 XYZ 234
3 RTY 344
4 MGH 678
T2
T2Id t1_Id(FK) t2_Value Rev
1 1 ab12 121
2 1 qw12 122
3 2 rf45 234
4 3 ty67 345
Output:
Id T1_Value T2_Value
1 ABC ab12
1 ABC qw12
2 XYZ rf45
3 RTY
4 MGH
這裏是我的查詢的一部分:
select t1.id, t1.value as t1_value, t2.value as t2_value
from t1, t2
where t1.id=t2.t1_id(+)
and nvl(t2.rev,-1)<=t1.rev
如果我用NVL,它將返回#1,2,4。但我無法確定我們如何返回#3,我當前的查詢正在丟棄#3,所以我根本沒有看到#3的行。看到一些迴應後,我想補充說我的數據是跨多個表,我需要做這個修訂檢查< = t1.rev至少10個表。
但我可以外部多次加入同一個表嗎?我也有相同的版本號檢查其他表。 – Skn
這個新問題與您在原文中提問的問題有何關係?然後:是的,您可以多次外連接到同一個表;但你怎麼做取決於你的問題。如果查詢比這更復雜,那麼您應該使用SQL標準語法DEFINITELY編寫外部連接(甚至Oracle至少在過去的20年中一直推薦!) – mathguy
這不是新的,就像我在我的問題中提到的那樣,我正在提取多個表中的數據,而且我只在問題中列出了部分查詢。是的,我有所有表的修訂檢查,我有至少10個表,我需要檢查<= t1.rev – Skn