MySQLの初学者です。自己結合についてです。 VSCodeで自己結合の文を実行する際、重複するカラムが表示されず悩んでおります。

MySQLの初学者です。自己結合についてです。 VSCodeで自己結合の文を実行する際、重複するカラムが表示されず悩んでおります。 例えば、以下のようなテーブルと文のとき 【id1】【id2】【name】 1、2、名前1 2、3、名前2 3、0、名前3 Select * from テーブル as A join テーブル as B on A.id1 = B. id2 コマンドプロンプトで実行すると以下のようになるのですが、 【id1】【id2】【name】【id1】【id2】【name】 2、3、名前2、1,2、名前1 3、0、名前3、2,3、名前2 VSCodeで実行すると以下のようになります。 【id1】【id2】【name】 1,2、名前1 2,3、名前2 どうもAテーブルのデータは、結合されるBテーブルのデータに上書きされる?ような動きです。 コマンドプロンプトの結果が正しいと思いますので、VSCodeで正しく表示されない理由と、直すやり方を教えて頂きたいです。 MySQLは本見て作ったMAMPという構成で、localhostです。 VSCodeはSQLToolsという拡張機能の中で書いています。 宜しくお願いします。

MySQL | プログラミング10閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

コマンドラインクライアントは、カラム順序で並べていくので、別名付けなくても表示されますが、VSCodeはたぶんカラム名(またはselect句のエイリアス名)をキーとしたhash配列で一行のデータを受けとっているのだと思います。hash配列は同じキー名が有ると上書きされます。 phpとかだと、カラム名をキーに受け取る方法と、カラム番号で受け取る方法を選んでコーディングできるのですが、VSCodeにその機能があるかは調べ切れませんでした。 とりあえず、全てのカラムに別名をつけて区別できるようにすれば問題なく表示可能と思われます。 select a.id1 as a_id1, a.id2 as a_id2 , a.name as aname , b.id1 as b_id1, b.id2 as b_id2 , b.name as bname from テーブル as a join テーブル as b on a.id1 = b.id2

ThanksImg質問者からのお礼コメント

ご回答ありがとうございました。詳しい方に考察頂けすっきりしました。 全てのカラム名にに別名をつけると意図したとおり表示されましたので、これで対処していきたいと思います。

お礼日時:9/13 14:44