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 - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?2. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!3. android - 目前有哪些用Vue.js開發移動App的方案?4. html5和Flash對抗是什么情況?5. 想找個php大神仿個網站。6. javascript - 一個抽獎的效果(如圖)?7. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號8. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決9. java - android代碼重構:如何把app設置里的頭像UI做成通用的?10. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?
