- - PR -
SQLの書き方について教えてください
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-12-03 00:25
以下のテーブルを結合するクエリの書き方をご教授頂けないでしょうか。
SQL2005(Express)をASP.NETで使用しております。 単価テーブル ID S_Lang T_Lang UnitPrice 1 1 2 20 2 2 1 17 3 3 2 25 言語テーブル ID Lang 1 EN 2 JA 3 DE 同じ「言語テーブル」を2回見に行くため、 SELECT 単価テーブル.ID AS ID 言語テーブル.Lang AS S_Lang 言語テーブル.Lang AS T_Lang 単価テーブル.UnitPrice AS UnitPrice FROM 単価テーブル INNER JOIN 言語テーブル ON 言語テーブル.Lang=単価テーブル.S_Lang と書いた所で行き詰ってしまいました。続けて、 INNER JOIN 言語テーブル ON 言語テーブル.Lang=単価テーブル.T_Lang と書いてもエラーになってしまいます。。。 初心者なので基本的なことが分かっていないと思うのですが、よろしくお願いいたします。 | ||||||||
|
投稿日時: 2007-12-03 02:08
2つの言語テーブルに別名(AS)をつければいいんじゃないですかね
| ||||||||
|
投稿日時: 2007-12-03 04:54
| ||||||||
|
投稿日時: 2007-12-03 06:21
単価テーブルのS_Lang、T_Langは、言語テーブルのLangではなく、IDに対応している のですよね? 「単価テーブル.S_LANG=言語テーブル.ID」で関連付けて、言語テーブルのLangの値 を得たいのでは?
| ||||||||
|
投稿日時: 2007-12-04 20:58
皆様すぐにご回答頂きありがとうございました。
各言語テーブルに AS で別名をつけることで、解決致しました。(忠犬さんのコードでバッチリでした) 最初に記述するSELECT内のテーブル名が仮の名前でも、後から記述するINNER JOIN ASでその名前を定義すれば大丈夫なのですね・・・(SQL界では常識なのだと思いますが)この発想には至りませんでした! ありがとうございました。 |
1