2016-09-02 4 views
0

複数の従属節で検索するSQLクエリを実行する方法はありますか?私が人間のテーブルを持っているように、私はすべての人間を戻すことを望むでしょう。(Type = Student and id = 1) & & (Type = Teacher and id = 44)。あなたが想像することができるように、各括弧を括弧ごとに展開し、さらに3番目、4番目の括弧を追加して、より多くの型で尋ねることができます。次のように一度に2つの行を選択するための複数ステートメントクエリ

表は以下のとおりです。

Humans 
id 
type 
name 

これまでのところ、私は一般的なSQLの方法、私が正しく理解していれば、私は

select * 
from t_humans 
where type = a_type and id = an_id 
+2

互換性のないデータベースタグを削除しました。実際に使用しているデータベースのタグを追加してください。 –

+0

@GordonLinoffこれはPsqlのためであり、where(x、y)in(...)節はあまりサポートされていません。 sbuqueries/derivedテーブルやそのような性質を使ってこれを行う方法はありますか? –

答えて

0

を行うのと同じクエリを何度も呼び出すことを強制していますより複雑なブール条件を使用することです:

select h.* 
from t_humans h 
where (type = 'Student' and id = 1) or 
     (type = 'Teacher' and id = 44); 

データベースによっては、これを単純化することができますinのタプルを使用して:

select h.* 
from t_humans h 
where (type, id) in (('Student', 1), ('Teacher', 44)); 
+0

ああ、私はPSQLと、Javaのクエリ可能なSQLクエリを自動生成する特殊なパーサを使用しています。この自動生成はIN述部をサポートしません。どのような方法でこれを行うには?それとも、それ自体に加わるより複雑なクエリですか?私はpsql/sqlにはあまり経験がありません –

関連する問題