テーフ゛ル「tb」です。
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)
以上ですが上記のテーフ゛ル「tb」をコピーしてテーフ゛ル「tb_zyun;」
を新たに作成しました。その後サブクエリを利用して
・[uria]を「降順に並べ替え」た
・「zyun」を追加して「順位」を付けました。
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)
-----------------------------------
以上で質問があります。
下記が サブクエリの「作業の流れ」ですが③で質問があります。
①のテーブル「tb_zyun」はテーブル[tb]をコピーしているので、
カラム [ bang | uria | tuki ]は存在しているにも関わらずに
なんで、 ③で再度存在する{[bang][uria][tuki]を「tb_zyun」に挿入}している
のでしょうか?
INSERT INTOで挿入しています。
INSERT INTO tb_zyun
(bang,uria,tuki)
サブクエリと「テーブル「tb_zyun」」は切り離して考えないといけ
ないのでしょうか?
よろしくお願いいたします。
作業の流れ
①テーブル[tb]のカラム構造だけをコピーしてテーブル「tb_zyun」を作成する。
書式:CREATE TABLE tb_zyun LIKE tb;
②「tb_zyun」に「連続番号期のを持つカラム[zyun]を加える」
書式:ALTER TABLE tb_zyun ADD zyun INT AUTO_INCREMENT PRIMARY KEY;
ここから問題です。
③サブクエリを使い、テーブル「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);
No.2ベストアンサー
- 回答日時:
質問の意図がわかりかねますが
tbにはレコードの順位がない(RDBにはレコードに優先順位という
概念がない)ので、順位をつけたいなら別のテーブルにデータを
流し込んで任意の連番をつけたらいいのでは?
という提案だと思います
No.1
- 回答日時:
西沢夢路「基礎からのMySQL 第3版」のp.230のあたりの話ということなので、著者に直接質問してみては。
https://r.binb.jp/epm/e1_59074_15092017175021/
想像するに、話の流れで、それを使ってるだけかと。技術的には、どうにでもなると思います。
ご解答くださいましてありがとうございます。
そうです、西沢さんの書籍はわかりやすい
です。
さてその書籍に
コピーの種類が3種類紹介してありました。
①テーフ゛ルのカラム構造+データのコピー
②テーフ゛ルのカラム構造だけコピー「(LIKE) 質問内容に該当」
③テーフ゛ルのみコピー
今回は②のなので
INSERT INTO tb_zyun
(bang,uria,tuki)
が成り立つ
納得です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フレンドリストのようなものを...
-
テーブルの列数を調べたい
-
WHEREなどの条件が多い場合、ど...
-
DBの定義のサイズを大きくし過...
-
UNIONする際、片方テーブルしか...
-
now()かCURRENT_TIMESTAMPか
-
SELECT文で、指定カラム以外の...
-
Accessの「IIF」に相当するSQL...
-
BULK INSERT時のNull許容について
-
ROUND関数で、四捨五入ができな...
-
INDIRECT関数の代替方法は?
-
whereで全てを検索する方法
-
構造が異なる二つのテーブルをu...
-
type date にnullをinsert
-
ドロップダウンリストの連動し...
-
update時にtimestampが更新され...
-
DBエラーの意味
-
頭に0が付く文字
-
スペース区切りの検索について
-
MySQLのTIMEDIFFのバグの解決方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの列数を調べたい
-
group byで最後のレコードを抽...
-
WHEREなどの条件が多い場合、ど...
-
[MySQL]LOAD DATA INFILE一部レ...
-
select * での表示が崩れる?
-
MYSQLで小数点を表示する場合と...
-
MySQL AUTO_INCREMENTが最大に...
-
フレンドリストのようなものを...
-
betweenを使うyyyy/mm/ddでの範...
-
データの暗号化について
-
MySQL 改行コードを含む文字列...
-
MySQL テーブルの一部のカラム...
-
MYSQLのストアドでの動的SQLに...
-
時間範囲が重複したレコードを...
-
データを同データが並ばないよ...
-
MySQLで、指定の複数カラムのみ...
-
countとdistinctを使ったSQL文...
-
「VARCHAR(255)」を「text」に...
-
ここで「INSERT INTO」を使う意...
-
mysqlで重複レコードを削除した...
おすすめ情報