mysql如何用minus運算子?

青灯夜游
發布: 2020-10-19 15:01:17
原創
4864 人瀏覽過

mysql不支援MINUS運算符,但可以使用MySQL JOIN來模擬它,語法格式「SELECT 欄位清單 FROM 表1 LEFT JOIN 表2 ON join_predicate WHERE 表2.id IS NULL;」。

mysql如何用minus運算子?

(推薦教學:mysql影片教學

SQL MINUS運算子簡介

MINUS在包含SQL標準的三個操作之一UNION,INTERSECT和MINUS。

MINUS比較兩個查詢的結果,並傳回第一個查詢中不是由第二個查詢輸出的不同行。

MINUS 指令是運用在兩個 SQL 語句上。它先找出第一個 SQL 語句所產生的結果,然後看這些結果有沒有在第二個 SQL 語句的結果中。如果有的話,那這一筆資料就被去除,而不會在最後的結果中出現。如果第二個 SQL 語句所產生的結果並沒有存在於第一個 SQL 語句所產生的結果內,那麼這筆資料就被拋棄。

以下說明了MINUS運算子的語法:

SELECT column_list_1 FROM table_1
MINUS 
SELECT columns_list_2 FROM table_2;
登入後複製

使用MINUS運算子的查詢的基本規則如下:

  • ##數量和兩列的順序

    column_list_1column_list_2必須相同。

  • 兩個查詢中對應列的資料類型必須相容。

假設我們有兩個表t1並t2具有以下結構和資料:

CREATE TABLE t1 (
    id INT PRIMARY KEY
);
 
CREATE TABLE t2 (
    id INT PRIMARY KEY
);
 
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (2),(3),(4);
登入後複製

以下查詢傳回t1表的查詢中的不同值,這些值在表的查詢結果中找不到t2。

SELECT id FROM t1
MINUS
SELECT id FROM t2;
登入後複製

mysql如何用minus運算子?

以下是MINUS圖說明:

mysql如何用minus運算子?

MySQL MINUS運算子

#不幸的是,MySQL不支援MINUS運算子。但是,您可以使用MySQL JOIN來模擬它。

要模擬MINUS兩個查詢,請使用下列語法:

SELECT 
    column_list 
FROM 
    table_1
    LEFT JOIN table_2 ON join_predicate
WHERE 
    table_2.id IS NULL;
登入後複製

例如,下列查詢使用LEFT JOIN子句傳回與MINUS運算子相同的結果:

SELECT 
    id
FROM
    t1
        LEFT JOIN
    t2 USING (id)
WHERE
    t2.id IS NULL;
登入後複製

以上是mysql如何用minus運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!