我正在嘗試編寫一條SQL語句來檢索數據庫中的用戶列表,以及他們的公司名稱(如果他們有與其關聯的公司)。但是,有幾個陷阱:基於條件的混合左/右連接?
- 並非所有用戶都有公司,但我仍然需要在列表中顯示這些人。
- 即使用戶有公司,該公司可能會被軟刪除(該記錄仍在數據庫中,但被標記爲is_deleted = 1),並且我不想顯示與「刪除「公司。
所以基本上我想從用戶表中選擇並且左連接公司表,但如果公司將它們分配給is_deleted,我不想包括用戶記錄。
我的第一個傾向是,我將不得不使用聯合將兩個查詢合併在一起,但我希望有一個更乾淨的方式來做到這一點?
使用MySQL 5.1
但我還想包括根本沒有公司分配給他們的用戶。看起來這種方式只顯示有公司的用戶,這可以通過傳統的INNER JOIN完成。 – Slickrick12
然後,您可以將INNER JOIN更改爲LEFT OUTER JOIN。我已經更新了我的答案。 – Maciej