mysql - 這個SQL哪不對
問題描述
1.統計任務提交情況2.A(id,name)人員表,B(bid,aid, mission)任務提交記錄表,aid 對應id,mission為字符串字段,一個人可提交多次任務,示例數據 id name 1 張三 2 李四 3 王五
bid aid mission1 1 xxxxx2 1 yyyyy3 2 zzzz
sql: select A.name,if(mission<>null,1,0) as mnum from A leftjion B on B.aid= A.id orderby id得到是name mnum張三 0張三 0李四 0王五 0
這個if怎么不起作用的????本來最終想得到如下效果,那么SQL怎么寫name 任務次數張三 2李四 1王五 0
問題解答
回答1:這句親測成功
select A.name,sum(if(mission is not null,1,0)) as ’任務次數’ from A leftjion B on B.aid= A.id group by A.id order by A.id desc回答2:
SELECT NULL IS NULL, NULL IS NOT NULL, NULL = NULL, NULL <> NULL你分別跑下 你就知道為什么你的if不起作用了。
回答3:按照SQL規范,所有和NULL運算的結果都是NULL,所以對NULL的判斷需要使用特殊的方法
1、IFNULL函數2、mission<>null 改為 mession is not null
相關文章:
1. javascript - sublime快鍵鍵問題2. javascript - 移動端上不能實現拖拽布局嗎?3. 實現bing搜索工具urlAPI提交4. javascript - 如何判斷不同兩個對象觸發同一事件?5. ubuntu - apache安裝好后php文件放在哪里?6. javascript - react native在run-android時出現這個錯誤該怎么解決?大神賜教7. angular.js - 單頁應用(ng/vue)該如何監聽用戶離開當前頁面(或者路由)?8. c++ - QWebEngineView加載url后直接點擊鏈接沒有反應要怎么解決?9. 前端 - 這段代碼一直生效不了,查半天因為 top: 0px; 分號后一個隱藏的東西,也不是占位符...刪了就可以生效,這是什么情況。。10. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙

網公網安備