- 締切済み
SQLについて
SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A = Y テーブル名.B = Z SELECT 別テーブル名.A 別テーブル名.B FROM 別テーブル という2つのSQLがあったとします。この時、別テーブルのSELECT文より取得してきた、AとBを上の式の条件(Y,Z)で両方同時に使用したい場合、どのようなSQLを書いたら良いのでしょうか? 1文にまとめて書く場合です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
2つの問い合わせを1度に行いたいといことでしょうか? であるなら.. SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A = Y テーブル名.B = Z UNION ALL SELECT 別テーブル名.A 別テーブル名.B FROM 別テーブル
- chukenkenkou
- ベストアンサー率43% (833/1926)
簡単に示すため、 テーブル名=TBL1、別テーブル名=TBL2 とします。 お使いのORACLEの条件式で、 (列名1,列名2,...) 演算子 (値1,値2,...) という指定方法がサポートされているか、確認願います。 SELECT TBL1.A,TBL1.B FROM TBL1 WHERE (TBL1.A,TBL1.B) IN(SELECT TBL2.A,TBL2.B FROM TBL2) 回答No1の列の連結でも可能と思われますが、「インデク スが利用されない」といった性能上の問題があるかも 知れません。
- Senna_FF
- ベストアンサー率45% (153/334)
うーん。ちょっと条件がわからないのですが。。 こんなのはだめでしょうか? (ご期待にそえるかわかりませんが・・・) SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A | テーブル名.B IN (SELECT 別テーブル名.A | 別テーブル名.B FROM 別テーブル)