• 締切済み

SQLについて

SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A = Y テーブル名.B = Z SELECT 別テーブル名.A 別テーブル名.B FROM 別テーブル という2つのSQLがあったとします。この時、別テーブルのSELECT文より取得してきた、AとBを上の式の条件(Y,Z)で両方同時に使用したい場合、どのようなSQLを書いたら良いのでしょうか? 1文にまとめて書く場合です。

みんなの回答

回答No.3

2つの問い合わせを1度に行いたいといことでしょうか? であるなら.. SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A = Y テーブル名.B = Z UNION ALL SELECT 別テーブル名.A 別テーブル名.B FROM 別テーブル

回答No.2

簡単に示すため、 テーブル名=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)
回答No.1

うーん。ちょっと条件がわからないのですが。。 こんなのはだめでしょうか? (ご期待にそえるかわかりませんが・・・) SELECT テーブル名.A テーブル名.B FROM テーブル名 WHERE テーブル名.A | テーブル名.B IN (SELECT 別テーブル名.A | 別テーブル名.B FROM 別テーブル)

関連するQ&A