文章詳情頁
MySQL子查詢的空值問題解決
瀏覽:2日期:2023-08-02 20:12:38
目前數(shù)據(jù)庫中有三個表
EMPLOYEES表DEPARTMENTS表LOCATIONS表employee_iddepartment_idlocation_idfirst_namedepartment_namestreet_addresslast_namemanager_idpostal_codeemaillocation_idcityphone_numberstate_provincejob_idcountry_idsalarycommission_pctmanager_iddepartment_id#現(xiàn)在要求:#查找公司管理者的last_name。已知manager_id有為null的數(shù)據(jù)SELECT last_nameFROM employeesWHERE employee_id IN ( SELECT manager_id FROM employees );這里找出了所有公司管理者的名字(18行數(shù)據(jù))。 ? 已知employees中共107行數(shù)據(jù) ? 現(xiàn)要查出這18人以外的人,理論上有89人。
#已知manager_id有為null的數(shù)據(jù)SELECT last_nameFROM employeesWHERE employee_id NOT IN ( SELECT manager_idFROM employees);可見,查詢結(jié)果為空。
原因: 使用not in 的時候,如果not in后面的選項中有null,不會查詢出來任何數(shù)據(jù)。sql語句本身直接返回false
#舉例SELECT employee_id,last_nameFROM employees WHERE employee_id NOT IN (NULL,101,102);#該語句返回空集舉例的查詢語句等價于
SELECT employee_id,last_nameFROM employees WHERE employee_id!= NULL AND employee_id!=101 AND employee_id!=102;WHERE中的條件永遠(yuǎn)返回null
null不能參與比較運算符,即與任何數(shù)據(jù)比較結(jié)果都為null,
比較結(jié)果分為true、false、null,只有結(jié)果為true時候,系統(tǒng)才認(rèn)為匹配成功并返回記錄,
到此這篇關(guān)于MySQL子查詢的空值問題解決的文章就介紹到這了,更多相關(guān)MySQL子查詢空值內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
標(biāo)簽:
MySQL
數(shù)據(jù)庫
排行榜
