我有一個機器表和一個表,表示這些機器跨越時間的可達性。使用MySQL加入來顯示不相關的記錄
machines
id name
1 machine1
2 machine2
3 machine3
4 machine4
machines_reachability
machine_id is_reachable time
1 0 (whatever)
2 1 (whatever)
3 0 (whatever)
1 1 (whatever)
2 0 (whatever)
3 0 (whatever)
1 1 (whatever)
2 1 (whatever)
3 1 (whatever)
我試圖找到一個具有NO可達記錄機(即machine4)使用連接。這可以通過其他方式完成,但我需要通過連接來完成此操作,以更好地理解它。
我嘗試以下
SELECT * FROM machines m LEFT OUTER JOIN machines_reachability mr ON m.id = mr.machine_id
我明白,這應該輸出整個左表內容(即機器)和OUTER
關鍵字應排除基於所述machines
和machines_reachability
表之間的結果的交集條件m.id = mr.machine_id
。但是這並沒有如我所料。它顯示所有內容但並不排除行沒有匹配。
那麼我怎麼能運行一個JOIN
查詢,實際上顯示沒有連接的行是否選擇性地是左表還是右表。
如果我省略'where isacachable爲null',我找不到'is_reachable'值爲'null'的行。那麼這種情況如何起作用?! –
如果刪除is_reachable爲空條件,那麼您將收到一張桌子 MACHINE1 機器2 Machine3 Machine4 –