ホームページ >データベース >mysql チュートリアル >mysqlでマイナス演算子を使用するにはどうすればよいですか?

mysqlでマイナス演算子を使用するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-10-19 15:00:434923ブラウズ

Mysql は MINUS 演算子をサポートしていませんが、MySQL JOIN を使用してシミュレートできます。構文形式は、「SELECT field list FROM table 1 LEFT JOIN table 2 ON join_predicate WHERE table 2.id IS NULL;」です。 。

mysqlでマイナス演算子を使用するにはどうすればよいですか?

#(推奨チュートリアル:

mysql ビデオ チュートリアル)

SQL MINUS 演算子の概要

MINUS には、3 つの SQL 標準演算 UNION、INTERSECT、MINUS のいずれかが含まれます。

MINUS は 2 つのクエリの結果を比較し、2 番目のクエリでは出力されない、最初のクエリの異なる行を返します。

MINUS ディレクティブが 2 つの SQL ステートメントで使用されています。まず最初の SQL ステートメントによって生成された結果を検索し、次にそれらの結果が 2 番目の SQL ステートメントの結果の中にあるかどうかを確認します。存在する場合、このデータは削除され、最終結果には表示されません。 2 番目の SQL ステートメントによって生成された結果が最初の SQL ステートメントによって生成された結果に存在しない場合、データは破棄されます。

MINUS 演算子の構文については、以下で説明します。

SELECT column_list_1 FROM table_1
MINUS 
SELECT columns_list_2 FROM table_2;

MINUS 演算子を使用したクエリの基本ルールは次のとおりです。

  • Quantity および2 つの列

    column_list_1column_list_2 の順序は同じである必要があります。

  • 2 つのクエリの対応する列のデータ型には互換性がある必要があります。

次の構造とデータを持つ 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 図の説明です:

mysqlでマイナス演算子を使用するにはどうすればよいですか?

MySQL MINUS 演算子

残念ながら、MySQL は MINUS 演算子をサポートしていません。ただし、MySQL JOIN を使用してシミュレートできます。

MINUS 2 クエリをシミュレートするには、次の構文を使用します。

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でマイナス演算子を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。