アプリ版:「スタンプのみでお礼する」機能のリリースについて

テーフ゛ル「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);

A 回答 (2件)

質問の意図がわかりかねますが


tbにはレコードの順位がない(RDBにはレコードに優先順位という
概念がない)ので、順位をつけたいなら別のテーブルにデータを
流し込んで任意の連番をつけたらいいのでは?
という提案だと思います
    • good
    • 2
この回答へのお礼

ご解答くださいましてありがとうございた。
#1さんのお礼の通りだと思います。
今後とも宜しくお願いします。

お礼日時:2021/09/13 14:21

西沢夢路「基礎からのMySQL 第3版」のp.230のあたりの話ということなので、著者に直接質問してみては。


https://r.binb.jp/epm/e1_59074_15092017175021/

想像するに、話の流れで、それを使ってるだけかと。技術的には、どうにでもなると思います。
    • good
    • 1
この回答へのお礼

ご解答くださいましてありがとうございます。
そうです、西沢さんの書籍はわかりやすい
です。
さてその書籍に
コピーの種類が3種類紹介してありました。
①テーフ゛ルのカラム構造+データのコピー
②テーフ゛ルのカラム構造だけコピー「(LIKE) 質問内容に該当」
③テーフ゛ルのみコピー
今回は②のなので
INSERT INTO tb_zyun
(bang,uria,tuki)
が成り立つ
納得です。

お礼日時:2021/09/13 14:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す