php - mysql的左聯查詢,右表某欄位為空的時候,為什麼左表對應的欄位也查不出來?
高洛峰
高洛峰 2017-06-05 11:08:00
0
2
451
SELECT category.c_id,category.c_name,jobs.amount FROM qs_category as category 
LEFT JOIN qs_jobs as jobs ON category.c_id=jobs.trade 
WHERE jobs.addtime >= 1483200000 AND jobs.addtime <= 1498838400 

這是查詢語句,左表category是分類表,右表jobs是職位表,我想統計出每個分類下職位的數量。
但是結果有點問題,如果某個分類在職位表的分類欄位裡不存在,也就是說這個分類下沒人加過職位,那麼查詢結果中這個分類也不會顯示。
但是照理說如果左聯的話,右表就算沒有對應的數據,左表的欄位也應該顯示的啊

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
刘奇

你where條件寫的右邊的表,當然查不出來拉,右表為空的時候條件字段也為空,被你where篩選掉了。

漂亮男人

我也遇到這種情況,是你的where條件篩選掉了。解決方法,把寫在where裡的條件追加在on裡面!
where是對連表後的結果集進行篩選,但是on裡面的條件如果為假,左表的資料會傳回,右表全為空

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板