- ベストアンサー
結合SQLに関して
taka451213の回答
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 >LEFT OUTER JOIN等を駆使すれば が、よくわからない(この場合、外部結合は不要なので)のですが・・・、 単純に結果を得るならば、 SELECT TABLE1.NO, TABLE2.BUSYO_CODE, TABLE3.BUSYO_NAME FROM TABLE1 INNER JOIN TABLE2 ON(TABLE1.NO = TABLE2.NO) INNER JOIN TABLE3 ON(TABLE1.BUSYO_CODE = TABLE2.BUSYO_CODE) になると思いますが・・・。
関連するQ&A
- 複数の外部結合
こんにちは、外部結合の仕方についてお聞きしたいのですが、 このSQL1で抽出されたデータにさらに TABLE3テーブルのデータを追加したくSQL2を作成したのですが、 うまくいきません。 ON TABLE1.[Code]=TABLE3.[Code]の部分をどのように記述すればよいのでしょうか? SQL1--------- TABLE1.[tamp] [Child], TABLE2.* FROM [p].[Price] TABLE1 LEFT OUTER JOIN [p].[Receive] TABLE2 ON TABLE2.[Code]=TABLE1.[Code] SQL2---------- TABLE1.[tamp] [Child], TABLE2.*, TABLE3.* FROM [p].[Price] TABLE1 LEFT OUTER JOIN [p].[Receive] TABLE2 ON TABLE2.[Code]=TABLE1.[Code] LEFT OUTER JOIN [p].[Product] TABLE3 ON TABLE1.[Code]=TABLE3.[Code]
- ベストアンサー
- Oracle
- オラクル結合SQL
こんばんわ。オラクル初心者です。 オラクル9.1で、下記のようにtable1とtable2を結合して、view1(oracleビュー) を作成したいのですが、どのようなSQLがよいでしょうか。 なかなかうまい方法がなくてこまっています。 table1 no 項目 その他 その他1 1 1 1 2 1 3 .....省略 table2 no 項目 種別 結果 1 1 01 3 1 1 02 8 1 1 03 7 1 2 01 9 1 2 02 6 1 2 03 2 1 3 01 1 ...... view1 良い例 no 項目 結果1 結果2 結果3 1 1 3 8 7 ←種別01 02 03を順にいれる 1 2 9 6 2 1 3 1............ select table1.no,table1.項目,・・・ from table1,table2 where table1.no = table2.no and table1.項目 = table2.項目 ↑おおよそこのような感じになるとは思ってます。 何とか頑張ったのですが、下記のようになってしまうことが 多かったです・・・。どこかSQLがわるいようです。 view1 悪い例 no 項目 結果1 結果2 結果3 1 1 3 8 7 1 1 3 8 7 1 1 3 8 7 1 2 9 6 2 1 2 9 6 2 1 2 9 6 2 1 3 1............ もしご存知の方いらっしゃいましたら、助かります。よろしくお願いいたします。
- ベストアンサー
- Oracle
- SQL 外部結合について
EXCELでODBC接続で外部データを取り込み、クエリテーブルを作成するところまではできるのですが、MicrosoftQueryを使って外部結合をしようとすると、テーブルが3個以上ある場合は外部結合できませんとエラーが表示されます。 直接SQLをさわれば出来るのかと思い、 SELECT フィールド名1, フィールド名2, ... FROM (((TABLE1 LEFT JOIN TABLE2 ON TABLE1.NO = TABLE2.NO)LEFT JOIN TABLE3 ON TABLE1.NO = TABLE3.NO)LEFT JOIN TABLE4 ON TABLE1.NO = TABLE4.NO)LEFT JOIN TABLE5 ON TABLE1.NO = TABLE5.NO を入力したのですが、「ORA-00942: 表またはビューが存在しません」というエラーが発生しました。 いろいろ調べてみたのですが全くの初心者なもので本当に困っております。 どなたかアドバイス等よろしくお願いします。
- ベストアンサー
- Oracle
- テーブルの結合について
テーブルの結合について悩んでおります。 一人の情報をテーブルを結合する事は、出来たのですが、 下記のように、ユーザー情報テーブルと そのペアの情報が別にあり、 テーブルを結合した情報を取得したいのですが、 どのようなSQL文を書けばよいでしょうか、 また、テーブル設計を変更した方がよいでしょうか、 よろしくお願いいたします。 user_table no name sex 1 AAA man 2 BBB woman pear_table user_no1 user_no2 1 2 結果 name1 sex1 name2 sex2 AAA nam BBB woman
- ベストアンサー
- MySQL
- 文字列の結合方法(SQL)
SQLでの文字列結合を教えてください。 (oracle9i使用) table1とtable2があります。 (table1) code name tel ------------------- 10 aoki 090- 20 kai 090- (table2) code item ----------- 10 A 10 B 10 C 20 A 20 C この2つの表を使って code name item ------------------- 10 aoki A B C 20 kai A C という結果にしたいのですが どのようなSQLを組めば良いのか教えてください! ↓どうしてもこうなってしまいます・・・ code name item -------------------- 10 aoki A 10 aoki B 10 aoki C 20 kai A 20 kai C
- ベストアンサー
- その他(プログラミング・開発)
- テーブル結合で、結合フィールドをWHERE句に用いた時に、結合フィールドのデータがNULLになってしまう。
MySQL 4.0.24-standard + PHP Version 4.3.11 を使用しています。 下記のような table_a, table_b があり、idフィールドで外部結合させています。 table_a id|value ------- 1 | 0 2 | 1 table_b id|name ------- 1 | A 2 | B SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b; result id|value|name -------------- 1 | 0 | A 2 | 1 | B しかし、下記のクエリでは、このようにidがNULLになってしまいます。 SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b WHERE table_a.id = 1; result id |value|name -------------- NULL| 0 | A 以下のような結果を得たいのですが、どうすれば良いのでしょうか? result id|value|name -------------- 1 | 0 | A
- ベストアンサー
- MySQL
- update文の副問い合わせ使用
2つのテーブルを結合して、片方のテーブルをUpdateしたいが、Update文での結合方法がよくわかりません。 table_a の excode列が更新対象で、table_aのname列とtable_bのname列の等価結合です。 テーブルとデータの例は以下です。 テーブル1:table_a create table table_a (code int(3), name varchar(10), excode int(6)); insert into table_a values (101,'あいう',0),(102,'かきく',0),(103,'たちつ',0),(201,'なにぬ',0),(301,'わをん',0); テーブル2:table_b create table table_b (excode int(6), name varchar(10)); insert into table_b values (500101,'あいう'),(500102,'かきく'),(500103,'たちつ'); 期待する結果は以下です。 SQL> select * from table_a; +------+--------+--------+ | code | name | excode | +------+--------+--------+ | 101 | あいう | 500101 | | 102 | かきく | 500102 | | 103 | たちつ | 500103 | +------+--------+--------+ MySQLバージョンは、5.0です。 よろしくお願いいたします。
- 締切済み
- MySQL
- SQLの結合条件について
SQLの結合条件について ・table_A ID | ATAI 01 | AAA 01 | XXX 02 | ABC 03 | DEF table_B ID | ATAI 01 | 不要 02 | 必要 03 | 必要 04 | 不要 上記のようなテーブルAとBがあるとします。 やりたいこと 1.テーブルAに存在するIDをBのIDから抽出 2.テーブルAの「ATAI」の値が’AAA’のIDは抽出対象から外す。 ※テーブルAの01IDに’AAA’と’XXX’がありますが、Bの抽出対象から外したい。 2.がうまくいきません。 select B.ID from table_A A,table_B B where A.ID = B.ID 上記のSQLに2.の条件を足して、結果を02と03にしたいです。 ※CASEは使わずにお願いします。
- ベストアンサー
- Oracle
- LEFT OUTER 外部結合で一致しない値も表示
select table1.*, table2.no from table1 inner left outer join table2 on table1.id = table2.no 上記の文を使って、一致した値がなくても、 すべて表示させた表を完成させたいのですが、 エラー #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'left outer join table2 on table1.id = table2.no~ が出てしまいます。 何がいけないのか、LEFT OUTERなしでやってみると、 きちんと値が返ってきました。 詳しい方いらっしゃいましたら、どうかお知恵を貸してください。 お願いいたします。
- ベストアンサー
- MySQL
- SQLを教えて下さい
SQL文を教えて下さい 以下の2つのテーブルがあります。 TABLE1 --------------- ID,NAME,PRICE --------------- 1,部品A,100 2,部品B,200 3,部品C,300 TABLE2 --------------- ID,NAME,PRICE --------------- 1,部品Aのサブ1,1 1,部品Aのサブ2,2 2,部品Bのサブ1,5 2,部品Bのサブ2,5 --------------- SELECT TABLE1.NAME TABLE2.NAME TABLE1.PRICE TABLE2.PRICE WHERE TABLE1.ID = TABLE2.ID(+) TABLE2.PRICE = (SELECT MAX(?) ?) 期待する結果 ・TABLE1.NAME = 部品Aの場合 --------------- 部品A,部品Aのサブ2,100,2 ・TABLE1.NAME = 部品Bの場合 --------------- 部品B,部品Bのサブ1,200,5 TABLE1.NAME = 部品Cの場合 --------------- 部品C,,300, ・TABLE1のNAMEに、TABLE2のNAMEが関連付く(付かないものもある) ・外部結合とMAX関数を用いたい。 ・TABLE2のPRICEが大きい方を取得(同一の場合は、どちらかを取得)
- ベストアンサー
- Oracle