您的位置:首頁技術文章
文章詳情頁

mysql - SQL查詢問題

瀏覽:92日期:2022-06-18 18:15:29

問題描述

表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表。

mysql - SQL查詢問題

mysql - SQL查詢問題

mysql - SQL查詢問題

這也只是解決的一種方式,我也不是很擅長后臺數據庫~~希望對你有幫助,也希望有更好的解決方案。因為我沒有考慮性能問題。

回答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將各個條件結果連接在一起.

相關文章:
国产综合久久一区二区三区