C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: select文


(過去ログ 32 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■15831 / inTopicNo.1)  select文
  
□投稿者/ クリトパス (5回)-(2008/03/23(Sun) 14:22:38)

分類:[データベース全般] 

オラクルです

testtable1には
キーとなる列
key1
key2
があり

testtable2には
キーとなる列と
key
キーの値となる列
honntai
があります。

key1とkey で結合させ hontaiを出したいのと
key2とkey で結合させ hontaiをそれぞれ出したいんですが、どのように書いたらいいのでしょうか

selete key1.hontai,key2.hontai from testtable1 as 1 inner join testtable2 as 2 on 1.key1 = 2.key and 1.key2 = key
ではエラーでした
selectの後の書き方がわかりません。
お願いいたします。
引用返信 編集キー/
■15833 / inTopicNo.2)  Re[1]: select文
□投稿者/ 片桐 (82回)-(2008/03/23(Sun) 14:44:12)
片桐 さんの Web サイト
エラーメッセージは何でしょう?

テーブル名 as 仮テーブル名 の仮テーブル名にはアルファベット使う方がいいですよ
あと、キー結合条件ですが、Key1 = key or Key2 = Key でどうでしょうか?
引用返信 編集キー/
■15834 / inTopicNo.3)  Re[2]: select文
□投稿者/ クリトパス (6回)-(2008/03/23(Sun) 14:48:43)
No15833 (片桐 さん) に返信
> エラーメッセージは何でしょう?
>
> テーブル名 as 仮テーブル名 の仮テーブル名にはアルファベット使う方がいいですよ
> あと、キー結合条件ですが、Key1 = key or Key2 = Key でどうでしょうか?

返信ありがとうございます。構文エラーとでています。


selete 2.hontai from testtable1 as 1 inner join testtable2 as 2 on 1.key1 = 2.key and 1.key2 = key
では一応でるのでselectの後が問題だと思います。


引用返信 編集キー/
■15836 / inTopicNo.4)  Re[1]: select文
□投稿者/ はつね (528回)-(2008/03/23(Sun) 16:29:57)
No15831 (クリトパス さん) に返信
> selete key1.hontai,key2.hontai from testtable1 as 1 inner join testtable2 as 2 on 1.key1 = 2.key and 1.key2 = key

key1ってテーブル名(またはテーブル別名)がありませんね。key1とかkey2は列名ですよね。

一度に考えずに少し分解して考えてみてください。あとテーブル別名に数字は使えますが人が読むとくときに間違えやすいので避けましょう。

> key1とkey で結合させ hontaiを出したい
SELECT testtable2.hontai
FROM testtable1 INNER JOIN testtable2 ON testtable1.key1=testtable2.key

> key2とkey で結合させ hontaiを出したい
SELECT testtable2.hontai
FROM testtable1 INNER JOIN testtable2 ON testtable1.key2=testtable2.key

この2つを同時に出したいってことですよね。
その場合、1つのtesttable1に対して、testtable2はkey1で内部結合するtesttable2とkey2で内部結合するtesttable2の実質2つ必要です。
同一SQL文で同じ名前で実質2つは無理ですから、テーブル別名としてtbl1とtbl2をつけてみてください。

ところで、同時に出すときですが、key1とkey2は同じ列のものを使うのでしょうか。
その場合の例としては次のような感じになります(INNER JOINを使う記述への変更はご自身でチャレンジしてみてください)。
SELECT tbl1.hontai,tbl2.hontai
FROM testtable1,testtable2 tbl1,testtable2 tbl2
WHERE testtable1.key1=tbl1.key
AND testtable1.key2_tbl2.key

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -