質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

解決済

join(テーブルの内部結合)の表示順序について

salah0615
salah0615

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

2回答

0評価

0クリップ

863閲覧

投稿2019/04/08 07:25

三つのテーブルを以下のように用意しました。

mysql

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.00 sec)

mysql

mysql> select * from tb3; +------+--------------+ | bang | ken | +------+--------------+ | A101 | 東京都 | | A102 | 埼玉県 | | A103 | 神奈川県 | | A104 | 北海道 | | A105 | 静岡県 | +------+--------------+ 5 rows in set (0.00 sec)

mysql

mysql> select * from tb1; +------+--------+------+ | bang | nama | tosi | +------+--------+------+ | A101 | 佐藤 | 40 | | A102 | 高橋 | 28 | | A103 | 中川 | 20 | | A104 | 渡辺 | 23 | | A105 | 西澤 | 35 | +------+--------+------+ 5 rows in set (0.00 sec)

bang(番号)をキーに結合したら、以下のような結果が出ました。
教科書に載ってた結果には、テーブルtbと同じbangの順番で、A103→A102→A104→A101→A103→A101のように出力されていたのに対し、以下の結果では、A101はA101でまとめて表示し、A102も二つまとめて表示する、というようになっています。

mysql

mysql> select -> tb.bang,tb.uria,tb1.nama,tb3.ken -> from tb -> join tb1 -> using(bang) -> join tb3 using(bang); +------+------+--------+--------------+ | bang | uria | nama | ken | +------+------+--------+--------------+ | A101 | 184 | 佐藤 | 東京都 | | A101 | 300 | 佐藤 | 東京都 | | A102 | 54 | 高橋 | 埼玉県 | | A102 | 205 | 高橋 | 埼玉県 | | A103 | 101 | 中川 | 神奈川県 | | A103 | 17 | 中川 | 神奈川県 | | A103 | 12 | 中川 | 神奈川県 | | A104 | 181 | 渡辺 | 北海道 | | A104 | 93 | 渡辺 | 北海道 | +------+------+--------+--------------+ 9 rows in set (0.00 sec)

この挙動には何か原因や意味があるのでしょうか。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。