SQL MINUS運(yùn)算符簡(jiǎn)介
MINUS在包含SQL標(biāo)準(zhǔn)的三個(gè)操作之一UNION,INTERSECT和MINUS。
MINUS比較兩個(gè)查詢(xún)的結(jié)果,并返回第一個(gè)查詢(xún)中不是由第二個(gè)查詢(xún)輸出的不同行。
MINUS 指令是運(yùn)用在兩個(gè) SQL 語(yǔ)句上。它先找出第一個(gè) SQL 語(yǔ)句所產(chǎn)生的結(jié)果,然后看這些結(jié)果有沒(méi)有在第二個(gè) SQL 語(yǔ)句的結(jié)果中。如果有的話(huà),那這一筆資料就被去除,而不會(huì)在最后的結(jié)果中出現(xiàn)。如果第二個(gè) SQL 語(yǔ)句所產(chǎn)生的結(jié)果并沒(méi)有存在于第一個(gè) SQL 語(yǔ)句所產(chǎn)生的結(jié)果內(nèi),那這筆資料就被拋棄。
以下說(shuō)明了MINUS運(yùn)算符的語(yǔ)法:
1 2 3 |
|
使用MINUS運(yùn)算符的查詢(xún)的基本規(guī)則如下:
數(shù)量和兩列的順序column_list_1和column_list_2必須相同。
兩個(gè)查詢(xún)中相應(yīng)列的數(shù)據(jù)類(lèi)型必須兼容。
假設(shè)我們有兩個(gè)表t1并t2具有以下結(jié)構(gòu)和數(shù)據(jù):
1 2 3 4 5 6 7 8 9 10 |
|
以下查詢(xún)返回t1表的查詢(xún)中的不同值,這些值在表的查詢(xún)結(jié)果中找不到t2。
1 2 3 |
|
MySQL MINUS運(yùn)算符
不幸的是,MySQL不支持MINUS運(yùn)算符。但是,您可以使用MySQL JOIN來(lái)模擬它。
要模擬MINUS兩個(gè)查詢(xún),請(qǐng)使用以下語(yǔ)法:
1 2 3 4 5 6 7 |
|
例如,以下查詢(xún)使用LEFT JOIN子句返回與MINUS運(yùn)算符相同的結(jié)果:
1 2 3 4 5 6 7 8 |
|