用于一次选择两行的多语句查询

时间:2016-09-02 02:39:05

标签: sql

有没有办法在多个依赖子句搜索的情况下执行SQL查询?就像我有一张人类的桌子一样,我想要找回所有(Type = Student and id = 1)&& (Type = Teacher and id = 44)。您可以想象,我可以将每个括号扩展为每个括号的多个语句,甚至可以添加第三个,第四个括号来查询更多类型。

表格如下:

Humans
id
type
name

到目前为止,我被迫多次调用相同的查询

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

1 个答案:

答案 0 :(得分:0)

如果我理解正确,一般的SQL方法是使用更复杂的布尔条件:

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));