

参考書の内容で質問します。
言葉だけではわかりずらいので、下の二つのテーブルを参考にされてください。
P.230
◎順位をつけの妙技 その2
---------------------------------
参考書の内容の抜粋です。
サブクエリを使うと、いろいろな方法で順位付けができるのです。
しかし、自己結合でやるよりも、わかりやすくなります。
ここでは、サブクエリを使った順付の方法を1つだけご紹介します。
売上情報テーブル「tb」の、売上順位をつけてみます。
今回は別のテーブルを用意して、順位をカラムに入力します。
-----------------------------------------------------------
それで質問です。
私的には、マイクロソフトアクセスを学んだ経験~「リネーショナルデータベース」
と「サブクエリ」は同一との考えです。ならば
「サブクエリ」とは 一部以外は書式が違っている「テーフ゛ル同士」があり
状況応じて必要になったデータを「サブクエリ」の技術を利用して、データを取りまとめ
(クエリ)ることのよりそのデータを取り出すことができる技術だと思います。
しかし 、この参考書は、テーフ゛ル「tb」をコピーして新してテーフ゛ル「tb_zyun;」
を作成しています。
① 書式:CREATE TABLE tb_zyun LIKE tb;
を実行して さらに
②「tb_zyun」に「連続番号期のを持つカラム[zyun]を加える」
書式:ALTER TABLE tb_zyun ADD zyun INT AUTO_INCREMENT PRIMARY KEY;
この時点で、もうサブクエリは必要ないような気がします。
テーフ゛ル「tb_zyun;」は元テーフ゛ルの「tb」にカラム[zyun]を追加したでけ
であるので 「サブクエリ」は必要ないような気がします。
サブクエリを使わなくてもテーフ゛ル「tb_zyun;」だけで 「売り上げ」カラム[uria]
の降順と「順番」であるカラム[ zyun]が表を見ることができるのではないでしょうか?
mysql> INSERT INTO tb_zyun (bang,uria,tuki) (SELECT bang,uria,tuki FROM tb ORDER BY uria DESC);
Query OK, 10 rows affected (0.01 sec)
Records: 10 Duplicates: 0 Warnings: 0
ここでは「サブクエリ」
mysql> select * from tb;
+------+------+------+
| bang | uria | tuki |
+------+------+------+
| A103 | 101 | 4 |
| A102 | 54 | 5 |
| A104 | 181 | 4 |
| A101 | 184 | 4 |
| A103 | 17 | 5 |
| A101 | 300 | 5 |
| A102 | 205 | 6 |
| A104 | 93 | 5 |
| A103 | 12 | 6 |
| A107 | 87 | 6 |
+------+------+------+
10 rows in set (0.01 sec)
mysql> SELECT * FROM tb_zyun;
+------+------+------+------+
| bang | uria | tuki | zyun |
+------+------+------+------+
| A101 | 300 | 5 | 1 |
| A102 | 205 | 6 | 2 |
| A101 | 184 | 4 | 3 |
| A104 | 181 | 4 | 4 |
| A103 | 101 | 4 | 5 |
| A104 | 93 | 5 | 6 |
| A107 | 87 | 6 | 7 |
| A102 | 54 | 5 | 8 |
| A103 | 17 | 5 | 9 |
| A103 | 12 | 6 | 10 |
+------+------+------+------+
10 rows in set (0.00 sec)
下記は
参考書の流れの「抜粋」です。
P.230
◎順位をつけの妙技 その2
---------------------------------
このコメントは 「私擬」
ここでのポイントはカラム[uria]をDESCで降順(大きいもの順)並び替えをする。
それに伝導した新たなカラム[zyun]にデータ型「INT AUTO_INCERMENT PRIMARY KEY」
を施し 順位をつける。
以下本文です。
①テーブル[tb]のカラム構造だけをコピーしてテーブル「tb_zyun」を作成する。(P.103参照する。)
書式:CREATE TABLE tb_zyun LIKE tb;
実行結果
mysql> CREATE TABLE tb_zyun LIKE tb;
Query OK, 0 rows affected (0.02 sec)
②「tb_zyun」に「連続番号期のを持つカラム[zyun]を加える(P.76、87)」
書式:ALTER TABLE tb_zyun ADD zyun INT AUTO_INCREMENT PRIMARY KEY; SQLハンドP.210
実行結果
mysql> ALTER TABLE tb_zyun ADD zyun INT AUTO_INCREMENT PRIMARY KEY;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
③サブクエリを使い、テーブル「tb」をカラム「uria」の降順に並べ替え、
[bang][uria][tuki]を「tb_zyun」に挿入する
③で、カラム[zyun]には連続番号が自動的に入力され、これが順位になる。
書式:INSERT INTO tb_zyun 解説:
(bang,uria,tuki)
(SELECT
bang,uria,tuki
FROM tb
ORDER BY uria DESC);
実行結果
mysql> INSERT INTO tb_zyun (bang,uria,tuki) (SELECT bang,uria,tuki FROM tb ORDER BY uria DESC);
Query OK, 10 rows affected (0.01 sec)
Records: 10 Duplicates: 0 Warnings: 0
④新規テーブル「tb_zyun」を確認する
書式:SELECT * FROM tb_zyun;
実行結果;
mysql> SELECT * FROM tb_zyun;~は
以上の表を参考にされください。
No.1ベストアンサー
- 回答日時:
>ここでは「サブクエリ」必要ないのではない!?
「ここで」が、
l> INSERT INTO tb_zyun (bang,uria,tuki) (SELECT bang,uria,tuki FROM tb ORDER BY uria DESC);
の後なら必要ないですね。すでにサブクエリを使った後なので。
ご回答くださいましてありがとうございます。
どうもすみません
誤り:ここでは「サブクエリ」必要ないのではない!?
正解:ここでは「サブクエリ」必要ないのではないでしょうか!?
手が空き次第、補足でご回答します。
しばらくお待ちください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- ドライブ・ストレージ NASの容量と ホルダーの プロパティの サイズと ディスク上のサイズの違い 1 2022/10/03 13:41
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
ここでは「サブクエリ」必要な...
-
一部のカラムでdistinctし全て...
-
MySQLの複雑な検索プログラムの...
-
【SQL】select に ワイルドカー...
-
ドロップダウンリストの連動し...
-
UNIONする際、片方テーブルしか...
-
TINYINTのサイズ指定に関して
-
レコード200万、カラム60,こう...
-
primary key指定してるのにuniq...
-
T-SQL 優先順によるデータの抽出
-
「主キー」の「PRI」の守備範囲...
-
エクセルかワードで家系図を作...
-
GREATESTで NULLをスルーする方...
-
値が 18446744073709551615 ...
-
カラムをコピーして、新規カラ...
-
sql , insert で空行(全ての列...
-
MySQLで複数のカラムの値を1増...
-
カラムとコラムの使い分け
-
SQLでカラムを追加し、条件に合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
一部のカラムでdistinctし全て...
-
UNIONする際、片方テーブルしか...
-
MYSQLで全てのカラムから検索す...
-
GREATESTで NULLをスルーする方...
-
AUTO_INCREMENTに0はダメ?
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
SQLでカラムを追加し、条件に合...
-
sql , insert で空行(全ての列...
-
【SQL】select に ワイルドカー...
-
カラムをコピーして、新規カラ...
-
エクセルかワードで家系図を作...
-
MySQLで先頭にカラムを追加
-
MySQLで論理名を取得する方法
-
文字列のカラムを数字と比較したい
-
DBエラーの意味
-
ROUND関数で、四捨五入ができな...
-
構造が異なる二つのテーブルをu...
-
日付を一括UPDATE
おすすめ情報
ご回答くださいましてありがとうございました。
そうですね!ここでは 新たに作ったテーフ゛ル
「tb_zyun」を作成後、更にサブクエリの技術を使って
「売り上げ」カラム[uria]の降順と「順番」であるカラム[ zyun]
を作成していて、成功している以上は「サブクエリ」が成立して
います。
ここではサブクエリの使い方の紹介なので私が質問した内容は別
の意味となり比較することはできないことが分かりました。