MYSQL サブクエリ

サブクエリ

SELECT文の中に、SELECT文を作れるよ!!って事です。

二段階でSQLが叩けるので、一発で「グループごとの平均値」などが出せます。

 

※この記事は、私の忘備録として残しています。動画は、とても分かりやすかった方の動画を紹介しています。

ぜひ、参考にしてください。

 

■サブクエリについて

【まとめ】

・クエリを叩いた結果に、さらにクエリを叩ける

・サブクエリ=クエリの中のクエリ

・使わなくて良いなら、使うな!

・相関サブクエリについても知ろう!!

 

以下の動画では、サブクエリの動きについて分かる事ができます。

 

 

基本について

 

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

 

(SELECT column1 FROM t2)

 

(SELECT column1 FROM t2)がサブクエリです。

 

SELECT * FROM t1 WHERE column1 =が外部クエリ、外部ステートメント呼ばれています。

 

・構造化されたクエリを使える

・複雑な集計ができる

・読みやすい

 

などの利点があります。

 

MYSQLリファレンスマニュアル>>

 

 

【相関サブクエリ】

サブクエリは外部クエリを参照することが可能

サブクエリ内にないテーブルを参照すると、外部クエリを見に行く。
これを利用してるのが相関サブクエリです。

 

■カテゴリごとに、平均価格以上の商品を選びたい

 

【itemsテーブル】

name

category price

iphone15

スマホ

100,000

iphone13

スマホ

80,000

iphone14

スマホ

90,000

ルンバ980

掃除機

50,000

ダイソン V10

掃除機

40,000

バルミューダ

掃除機

60,000

 

 

■サブクエリ

SELECT * FROM items AS i1

WHERE price >=

(SELECT AVG(price) FROM items AS i2

WHERE i1.category=i2.category

GROUP BY category);

 

(SELECT AVG(price) FROM items AS i2 WHERE i1.category=i2.category GROUP BY category);

の部分が先に計算されます。(内部クエリ)

すると平均値が「90,000」「50,000」と出ます。

 

category AVG(price)

①スマホ

90,000

②掃除機

50,000

 

次に外側のSQL文が実行されます。

 

【スマホの時】

SELECT * FROM items AS items WHERE price >= 90,000

 

【掃除機の時】

SELECT * FROM items AS items WHERE price >= 50,000

 

が1行づつ、上から実行されていきます。

 

iphone15から、順にSELECT文が実行していくイメージです。

 

①SELECT * FROM items AS items WHERE 100,000 >= 90,000(スマホ)

①SELECT * FROM items AS items WHERE 100,000 >= 90,000(スマホ)

①SELECT * FROM items AS items WHERE 100,000 >= 90,000(スマホ)

 

終わったら

②SELECT * FROM items AS items WHERE 50,000 >= 50,000(掃除機)

②SELECT * FROM items AS items WHERE 40,000 >= 50,000(掃除機)

②SELECT * FROM items AS items WHERE 60,000 >= 50,000(掃除機)

 

内部のクエリにより、カテゴリごとの平均値が出たあと、それぞれに外部クエリが実行されていく感じです。

どうでしょうか?分かりますか??

 

カテゴリは

GROUP BY category で「スマホ」と「掃除機」がある事がわかります。

 

category AVG(price)

①スマホ

90,000

②掃除機

50,000

 

この2つのカテゴリの平均値を基に、外部のセレクト文が実行されていく。

という訳です。

分かりますか??

 

 

【参照】

小学生でもわかるサブクエリ【SQL講座⑤】>>

【MySQL】テーブルとカラムに別名をつける「AS」>>

サブクエリの書き方を2万文字弱かけてすべて解説する>>

 

 

 

まとめ

COUNT関数など、集計関数とセットで使われたりします。

わたしは、順位付けの部分でサブクリエにでくわしました。ランキングを作る時などに利用します。

 

mysql8.0ではRANKIG()関数などがあり、これを使った方が速いです。

しかし、この「サブクエリ」を理解する事で、SQLの勉強になった事はいなめません。

 

ぜひ、サブクエリ、相関サブクエリを学び。SQLライフを充実させてください。

 

 

MYSQLの学習

MYSQLの学習

DBに格納、取り出しをしてくれる部分。データの型を決めるところがまずハマル。この順番で学習できます。

 

■ 設計について■

エンティティの抽出

正規化をしよう

UMLとは何か?

ER図を覚えよう

アンチパターンとは?

GitHubとは

 

■アンチパターン

論理削除

ジェイウォーク(交差テーブルを作らない)

1文字エイリアス

全部小文字

複数列属性(マルチカラムアトリビュート)

パスワード

フラグの闇

 

 

 

マッチングアプリ関連情報

 

ER図について。中間テーブルを作る事が必要。

詳細はこちら>>

正規化する=縦と横の繰り返しをなくす。

 

■ 基本編 ■

マッチングアプリの作り方

テーブルの設計

ER図を作る

テーブルの定義

 

開発費用は200万~500万が相場です

 

参照>>

 

Glide

Google のスプレッドシートを利用して PWAアプリ開発をすることができる

 

データベース・リファクタンリグ

理論から学ぶデーターベース実践入門

 

 

はまるところ

・データの型()が分からない

・適切な長さが分からない

・外部キーの設定

・交差テーブル

 

 

参照サイト

ダウンロードできない>>

 

 

大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター