質問: 上記の解答の 「県テーブル AS p INNER JOIN 店テーブル AS s」 をサブクエリに置き換え、項目を取得したいと考えております。 ご教授の程、よろしくお願い致します。 ツール:A5 言語:MySQL
回答: 依頼を別で出させていただいてますが、 おそらく勉強目的でのサブクエリ化という認識で相違ないですかね? (※サブクエリ化するメリットがあまり見受けられないので要件・仕様的なところではないとは思ってます。) 質問者様があげられて箇所をサブクエリ化した場合、 修正後のクエリは以下のようなイメージとなります。 ``` SELECT t.*, IFNULL(nos.店舗数, 0) AS 店舗数 FROM ( SELECT p.県コード, s.店コード, s.店名 FROM 県テーブル AS p -- 下記は前回回答追記の通り「CROSS JOIN」へ置き換え可能です INNER JOIN 店テーブル AS s ) AS t LEFT OUTER JOIN 店舗数テーブル AS nos ON t.県コード = nos.県コード AND t.店コード = nos.店コード ORDER BY t.県コード, t.店コード ; ``` 結局**サブクエリ(副問い合わせ)って何ぞや**というと、 基本的には**一番外側のSELECT文(主問合わせ)**内の、 **いずれかの部分(SELECTのカラムリスト部分、FROM句内、WHERE句内など)に登場するSELECT文**を総称した呼び名です。 あまり難しく考えすぎなくとも良いかなと思います。