搜尋

首頁  >  問答  >  主體

php - mysql的左聯查詢,右表某欄位為空的時候,為什麼左表對應的欄位也查不出來?

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

高洛峰高洛峰2718 天前442

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-06-05 11:10:00

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

    回覆
    0
  • 漂亮男人

    漂亮男人2017-06-05 11:10:00

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

    回覆
    0
  • 取消回覆