お知恵を貸してください。
ACCESSでSQLステートメントで
『Aテーブル』
ID 商品コード1 商品コード2
1 1111 2222
2 2222 3333
3 4444 5555
『Bテーブル(商品コードマスター)』
商品コード 商品名
1111 ああああ
2222 いいいい
3333 うううう
4444 ええええ
5555 おおおお
AテーブルとBテーブルを結合して
ID 商品コード1 商品名 商品コード2 商品名
1 1111 ああああ 2222 いいいい
2 2222 いいいい 3333 うううう
3 4444 ええええ 5555 おおおお
というCテーブルを作りたいです。
商品コード1と商品コード2の両方共 Bテーブルの商品コードから商品名を取得したいのですが、できないのですが・・・・
出来ればBテーブル(商品コード)を2つ作くったり等したくないのですが、SQLステートメントでどう記述すれば良いですか?
No.1ベストアンサー
- 回答日時:
> 2つ作ったり等したくないのですが
同一内容のテーブル(つーかオブジェクト)を複数作りたくないと
解釈しましたが、それでも大丈夫でしょうか?
であれば、Bテーブルのエイリアスを使えば以下のように可能です。
select Aテーブル.id, Aテーブル.商品コード1, Bテーブル.商品名, Aテーブル.商品コード2, Bテーブル_1.商品名
from (Aテーブル inner join Bテーブル on Aテーブル.商品コード1 = Bテーブル.商品コード)
inner join Bテーブル as Bテーブル_1 on Aテーブル.商品コード2 = Bテーブル_1.商品コード;
この回答への補足
ご回答ありがとうございます。
エイリアスって、どう意味でしょうか?
あと
『Bテーブル_1』の『_1』というのは、よくACCESSのデザインビューで
同じテーブルを表示するとよくテーブル名に、『_1』『_2』『_3』・・・・
とついていくのと同じ意味でしょうか・・・。
重ねて質問してしまって申し訳ないですが、お答えいただければ嬉しいです。
No.3
- 回答日時:
No2さんの回答を SQL 文にて実行しCテーブルを作成してみました。
<C>
ID 商品コード1 B_商品名 商品コード2 B_1_商品名
1 1111 ああああ 2222 いいいい
2 2222 いいいい 3333 うううう
3 4444 ええええ 5555 おおおお
このような結果を得ました。
Private Sub コマンド0_Click()
Dim isOK As Boolean
Dim strSQL As String
strSQL = "SELECT A.ID, A.商品コード1, B.商品名, A.商品コード2, B_1.商品名 " & _
"INTO C " & _
"FROM (A LEFT JOIN B ON A.商品コード1 = B.商品コード) LEFT JOIN B AS B_1 ON A.商品コード2 = B_1.商品コード;"
isOK = CnnExecute(strSQL)
If isOK Then
MsgBox "テーブルCを生成しました。"
End If
End Sub
なお、CnnExecute() は ADODB.Connection の Execute メソッドを利用して SQL文を実行するというものです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- SQL Server SQLのクエリの書き方 1 2022/03/29 23:06
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- ヤフオク! ヤフオクの取引について 1 2022/04/16 23:08
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- その他(Microsoft Office) EXCEL VLOOKUPに関する質問 5 2023/02/08 11:38
- ヒーター・こたつ・ホットカーペット Nマークのついた電源延長コードについて 5 2022/07/14 11:35
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
SQL文について(片方のテーブル...
-
accessで移動平均する方法
-
VIEWでテーブルの集計結果...
-
sqlのupdate文で質問です。 テ...
-
続.ORACLEのSELECTのソートに...
-
場合によって条件を変えるSQL
-
Accessでフィールドを比較した...
-
エクセル
-
ACCESS2007 フォーム 「バリア...
-
ビューで引数を使いたい
-
PhpMyAdminで作成して実行せよ...
-
ACCESS 一番最新の日付の金額...
-
アクセスのテーブルからエクス...
-
Accessのリンクテーブルについて
-
accessテーブル作成クエリを実...
-
Accessにインポートしたら並び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
主キーの変更
-
Accessでフィールドを比較した...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
行方向のデータを横に並べる
-
下記のsqlで取得されるレコード...
-
VIEWでテーブルの集計結果...
-
update文で質問です。 下記の条...
-
[Oracle] UPDATE分の副問い合わ...
-
片方だけ抽出する方法(SQL)
-
自分自身への矢印
-
連番のMin, Maxを取得したい
-
Accessユニオンクエリーで2つ...
-
日付の最大値を検索条件にする方法
-
Inner join と Left joinの明...
おすすめ情報