mysql - SQL查詢問題
問題描述
表A 表Buser_id name id user_id sorce 1張三 1 1 78 2李四 2 2 3王五 3 5 80 想要查詢表A中 沒有分數或者表B中沒有分數記錄的,sql如何寫?select A.user_idid A.name FROM A LEFI JOIN BON A.user_id=B.user_id WHERE B.sorce=’’;這個SQL不知道對不對?1.表A中的user_id=3的王五,但王五的記錄在B表中沒有,我用左鏈接查詢出來2.sorce =’’解決分數為空 查詢出來
問題解答
回答1:不太同意一樓的sql語句,第一是因為子查詢,第二好像沒有檢索出沒有分數記錄的。
SELECT * FROM product.a left join product.b on aid=aid2 where b.aid2 is null or sc is null;
這是我自己本地測試的,用的是mysql,但是其實都差不多。先用表連接把兩個表按照規定的id鏈接在一起,aid對應是你a表里的userid,aid2對應是你b表的userid,然后最后上圖。圖一是我的sql語句的結果,圖二是我的a表,圖三是我的b表。
這也只是解決的一種方式,我也不是很擅長后臺數據庫~~希望對你有幫助,也希望有更好的解決方案。因為我沒有考慮性能問題。
回答2:select * from 表A where user_id not in (select user_id from 表B where score >=0 )回答3:
select user_id, namefrom table_a where user_id not in (select user_id from table_b)union allselect b.user_id, a.namefrom table_b binner join table_a a on a.user_id = b.user_idwhere b.sorce=’’
有時候判斷條件語句過于復雜可以使用union all將各個條件結果連接在一起.
相關文章:
1. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?2. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?3. vue ajax請求回來的數據沒有渲染到頁面4. mysql新建字段時 timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 報錯5. docker 17.03 怎么配置 registry mirror ?6. javascript - js 關于時間的轉換以及時間的加減。7. objective-c - IOS 分享到微信 提示 應用消息數據錯誤8. javascript - 音樂播放器-圖片旋轉9. angular.js - 用angularjs的service封裝百度地圖api出錯,請問原因?10. MySQL timestamp的默認值怎么設置?
