DOBON.NET DOBON.NETプログラミング掲示板過去ログ

SQLのJOINした後の列名が重複する

環境/言語:[win7 vb2010]
分類:[.NET]

お世話になります。
環境は
WIN7 64bit
vb2010
access使用
SQLに触れ始めた程度の知識です。

2つのテーブルを「コード」を元に結合したのですが、
2つのテーブルのコード名が列名に入ってきてしまいます。
selectで片方の「コード」のみ指定すればよいのですが、数が多いと大変だと思いました。

SELECT *
FROM Table_AAA INNER JOIN Table_BBB ON Table_AAA.コード = Table_BBB.コード

上記ですと、取得した列名に
Table_AAA.コード と Table_BBB.コード
が入ってきてしまいます。

select文でどちらか片方のコードのみを表示させるような記述はあるのでしょうか?
Table_AAAは列数150程、Table_BBBは列数50程あります。

当方が考えたのは、table_BBBテーブルを一度読んで列名だけ取得して
コードだけを抜かしてループで列名を連結させて、select文に入れるという無茶的なことくらいでした。
slect Table_AAA.*,Table_BBB.コード以外 FROM 〜

おかしな事を質問しているかもしれませんが、よろしくお願いいたします。
■No30025に返信(ATSUSHIさんの記事)
200列あるのなら1列くらい増えてもいいのではないでしょうかとそんなゆるい考えじゃだめですよね、はい。select句で使用できるワイルドカードは*だけなので片方の列のみを選択するという記述はないと思います。select文を一度作成して、作成したselect文をプログラムで使用するようにすれば処理速度が遅くなるということはありませんから、ループで動的にselect文を作成するのはそんなに無茶なことではないと思います。
■No30025に返信(ATSUSHIさんの記事)
> 当方が考えたのは、table_BBBテーブルを一度読んで列名だけ取得して

列定義の一覧は、OleDbConnection.GetSchema メソッドで取得できます。
もりお様、魔界の仮面弁士様、ありがとうございます。
SQL文が物凄く長くなってもそんなに速度は落ちないのですね、勉強になりました。

OleDbConnection.GetSchemaメソッドを使用してみまして、列名のみ取得できました。
DB全てを読み込んで列名以外クリアしてループさせていましたが、これで軽くなりそうです。

良いヒントをありがとうございました。
解決とさせていただきます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板