- - PR -
同じテーブルを2つ使う方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-08 18:32
お世話になります。
同じテーブルを2つ使いたいのですが、SQL文のFROM句の 書き方がわかりません。 ご存知の方、宜しくお願い致します。 データベースはORACLEです。 Table_A SINSEISHA_NO TAISHOSHA_NO Table_B SHAIN_NO SHAIN_NAME Table_AのSINSEISHA_NO=Table_BのSHAIN_NO でSHAIN_NAMEを取得。 Table_AのTAISHOSHA_NO=Table_BのSHAIN_NO でSHAIN_NAMEを取得。 この場合、Table_Bを2つ定義しなければいけないですよね。 すいません。宜しくお願いします。 | ||||
|
投稿日時: 2004-09-08 20:02
そういう時は、別名を使います。
select B1.SHAIN_NAME SINSEISHA_NAME, B2.SHAIN_NAME TAISHOSHA_NAME from Table_A A, Table_B B1, Table_B B2 where A.SINSEISHA_NO=B1.SHAIN_NO and A.TAISHOSHA_NO=B2.SHAIN_NO #Oracleのバージョンがわからないので、join句は使っていません | ||||
|
投稿日時: 2004-09-09 09:52
こんにちは。
Table_A.SINSEISHA_NOで抽出するSHAIN_NAMEと Table_A.TAISHOSHA_NOで抽出するSHAIN_NAMEを まとめて抽出する形になりますが、UNIONを使う方法もあります。
| ||||
|
投稿日時: 2004-09-10 09:17
uk様、Qoo様、ありがとうございます。
昨日色々試してみました。 結果、JOINする項目名が同じ名称でないとエラーとなります。 uk様のアドバイスでも、Qoo様のアドバイスでもJOINする左右の 名称が一致していないのに・・・・。 エラー内容 ---------------------------------------------------------- 制約を有効にできませんでした。1 つ以上の行に、Null か、 一意でないか、または外部キー制約違反の値が含まれています。 ---------------------------------------------------------- データベース :OLACE 9i(9.0.2) 開発環境 :VS.NET2002 テーブルには1行のみで、NOT NULLの項目には値を入れています。 PRIMARY KEYを設定しています。 Table_A側とTable_B側のタイプ、長さも一致させています。 お手数をおかけしますが、どうぞよろしくお願い致します。 | ||||
|
投稿日時: 2004-09-10 09:30
色々試したときのSQLを載せて頂けませんか? (項目名、テーブル名は仮のもので構いません) その上で「こういうエラーになりました」となればこちら側も指摘しやすいと思います。 #ちなみに、SQLに関するご質問はDatabase Expert 会議室が宜しいかと思います。 _________________ 負けないように枯れないように笑って咲く花になろう [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-09-10 09:32 ] | ||||
|
投稿日時: 2004-09-10 10:15
まゆりん様、ご指摘ありがとうございます。
わからない事を検索していて、その場で新しいスレッドを 書き込んでしまいました;; (今後、気をつけます) 今回はこのまま質問を続けさせてください。 よろしくおねがい致します。 SELECT T_KAIRAN.SINSEI_YMD, T_KAIRAN.SINSEI_NO, T_KAIRAN.SINSEI_USER, T_KAIRAN.TAISHO_USER, T_KAIRAN.CHOHYO_CD, T_KAIRAN.KAIRAN_NEXT, T_KAIRAN.KAIRAN_USER_NAME, T_KAIRAN.KAIRAN_KBN, T_KAIRAN.GYOMU_TANTO_BUSHO, T_KAIRAN.STATUS_KBN, T_KAIRAN.SHONIN_YN_FLG, T_KAIRAN.END_YMD, M_CHOHYO.CHOHYO_NAME, M_STATUS.STATUS_NAME, SINSEI.SHAIN_NAME SINSEI_NAME, TAISHO.SHAIN_NAME TAISHO_NAME FROM T_KAIRAN, M_CHOHYO, M_STATUS, M_SHAIN SINSEI, M_SHAIN TAISHO WHERE T_KAIRAN.CHOHYO_CD = M_CHOHYO.CHOHYO_CD AND T_KAIRAN.STATUS_KBN = M_STATUS.STATUS_KBN AND T_KAIRAN.SINSEI_USER = SINSEI.SHAIN_NO AND T_KAIRAN.SINSEI_USER = TAISHO.SHAIN_NO お手数をおかけいたしますが、宜しくお願い致します。 | ||||
|
投稿日時: 2004-09-10 10:32
こんにちは。
エラーの発生状況についての確認なのですが、 1.提示されたSQLを(SQL Plus等より発行して)Oracle上で実行させた場合にエラーとなる のでしょうか? 2.プログラムを作成していて(VB or C#)、DataSet等を用いて処理を行なった際にエラーと なるのでしょうか? | ||||
|
投稿日時: 2004-09-10 10:37
お世話になります。
プログラムを作成していてエラーになります。 このSQL文をSQL Plusから発行した場合、 問題なく抽出できます。 宜しくお願い致します。 |