ホームページ  >  記事  >  データベース  >  mysqlサブクエリの使い方

mysqlサブクエリの使い方

王林
王林転載
2023-06-02 10:31:051834ブラウズ

他のステートメント内に出現する Select ステートメントはサブクエリまたは内部クエリと呼ばれ、外部クエリ ステートメントはメイン クエリまたは外部クエリと呼ばれます。

-- 子查询
-- 查询的条件来自于另一查询的结果
SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='张三')

もちろん、サブクエリにもタイプがあり、次のタイプに分類されます。タイプ:

  • スカラー サブクエリ (結果セットには 1 つの行と 1 つの列のみが含まれます)

  • column サブクエリ (結果セットには 1 つの列のみが含まれます)

  • 行サブクエリ (結果セットには 1 行と複数の列があります) (less)

  • テーブル サブクエリ (結果セット通常、複数の行と複数の列があります)

ここでは例として新しい t_user テーブルを取り上げます

mysqlサブクエリの使い方

注意してください。ここでの分類は、埋め込みサブクエリの結果に基づいています。 たとえば、上記の SQL ステートメントはスカラー サブクエリです。

mysqlサブクエリの使い方

サブクエリの結果には 1 行と 1 列しかありません

次に、SQL ステートメント内のサブクエリの位置を基準にします。次について説明します。

選択後: スカラー サブクエリのみがサポートされます。

-- select语句后面,将t1查询出的结果作为子查询的条件
SELECT t1.number,
  (SELECT NAME FROM t_user t2 WHERE t1.name = t2.name)
FROM t_user t1

クエリ結果:

mysqlサブクエリの使い方

##insert into の後、更新および削除:

insert into はテーブルにデータを挿入するために使用されるため、その後に列サブクエリとテーブル サブクエリを続けることができます

-- insert into 后跟子查询
INSERT INTO t_user(number,NAME,age,birthday,weight,sex,opertime)
       SELECT number,NAME,age,birthday,weight,sex,NOW() FROM t_user WHERE id=3

ここで注意が必要なのは更新と削除です

UPDATE t_user SET NAME='abc' WHEREnumber=(SELECT number FROM t_user WHEREweight=110)

DELETE FROM t_user WHERE id=(SELECT id FROM t_user WHERE id=7)

Mysql では、上記の 2 つの SQL をこの方法で実行することはできません:

mysqlサブクエリの使い方

mysql の基礎となるメカニズムにより、このテーブルを操作できません。このテーブルの構造を変更する

言い換えると、サブクエリは、現在操作されているテーブルをクエリできません。

スカラー サブクエリ、列サブクエリ、行サブクエリが続きます

-- where后跟标量子查询
-- 查询体重最大的人信息
SELECT * FROM t_user WHERE weight=(SELECT MAX(weight) FROM t_user)
-- where后跟列子查询
-- 查询体重大于或等于130的人信息
SELECT * FROM t_user WHERE weight IN (SELECT weight FROM t_user WHERE weight>=130)
-- where后跟行子查询
-- 查询年龄最大,体重最大的人的信息
SELECT * FROM t_user 
     WHERE (age,weight) = (SELECT MAX(age),MAX(weight) FROM t_user)

後ろから: テーブル サブクエリを続けることができます

テーブル ワード クエリの結果は複数の行と複数の列です。テーブル

-- 表子查询
SELECT t.age FROM (SELECT age,weight FROM t_user)t

結果:

mysqlサブクエリの使い方

以上がmysqlサブクエリの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。