溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么解決Mysql多行子查詢的使用及空值問題

發(fā)布時(shí)間:2022-01-24 09:43:10 來源:億速云 閱讀:233 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“怎么解決Mysql多行子查詢的使用及空值問題”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么解決Mysql多行子查詢的使用及空值問題”吧!

1 定義

  • 也稱為集合比較子查詢

  • 內(nèi)查詢返回多行

  • 使用多行比較操作符

2 多行比較操作符

怎么解決Mysql多行子查詢的使用及空值問題

-- 多行子查詢

-- IN
SELECT
	employee_id,
	manager_id,
	department_id 
FROM
	employees 
WHERE
	manager_id IN ( -- 在返回集合中查找有沒有相同的manager_id在里面
	SELECT
		manager_id 
	FROM
		employees 
	WHERE
	employee_id IN ( 141, 147 ));
	
-- ANY
#題目:返回其它job_id中比job_id為'IT_PROG'部門任一工資低的員工的員工號(hào)、姓名、job_id 以及salary
	last_name,
	job_id,
	salary 
	job_id != 'IT_PROG' 
	AND salary < ANY ( -- 比任意一個(gè)小都可以
	SELECT salary FROM employees WHERE job_id = 'IT_PROG' );
-- ALL
#題目:返回其它job_id中比job_id為'IT_PROG'部門所有工資低的員工的員工號(hào)、姓名、job_id 以及salary
	AND salary < ALL ( -- 比所有的都小才可以

3 空值問題

3.1 問題

	-- 空值問題
SELECT
	last_name 
FROM
	employees 
WHERE
	employee_id NOT IN (
	SELECT -- 子查詢中的結(jié)果有NULL
		manager_id 
	employees)

子查詢的結(jié)果:

怎么解決Mysql多行子查詢的使用及空值問題

查詢結(jié)果:

怎么解決Mysql多行子查詢的使用及空值問題

3.2 解決

去掉子查詢中的NULL即可

	-- 空值問題解決
SELECT
	last_name 
FROM
	employees 
WHERE
	employee_id NOT IN (
	SELECT
		manager_id 
	FROM
		employees 
	manager_id IS NOT NULL)

子查詢?nèi)サ鬘ULL:

怎么解決Mysql多行子查詢的使用及空值問題

查詢結(jié)果:

怎么解決Mysql多行子查詢的使用及空值問題

感謝各位的閱讀,以上就是“怎么解決Mysql多行子查詢的使用及空值問題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么解決Mysql多行子查詢的使用及空值問題這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI