1

SQL新手在这里,只是学习如何做一些基础知识。在 SQLite 中工作,如果我有一组条件,我可以使用 搜索任何匹配项IN,如下所示:

SELECT * FROM people WHERE job_id IN (1,2,3)

在这个人为的例子中,这会给我任何工作 ID 为 1、2 或 3 的人。但是,在不同的情况下,我怎么能把它变成一个 ALL 条件?IE。选择job_id匹配数组中所有术语的人?

我认为在某些数据库中你可以这样做:

SELECT * FROM people WHERE job_id IN ALL (1,2,3)

但是当我在 SQLite 中尝试这个时,我得到了syntax error near ALL. 那么,你如何在 SQLite 中做到这一点,并且,为了奖励积分,有没有办法编写这种也与 PostgreSQL 兼容的查询?

4

1 回答 1

1
SELECT columName          -- fetch only single column
FROM people 
WHERE job_id IN (1,2,3)
GROUP BY job_id
HAVING COUNT(*) = 3

GROUP BYand后面HAVING是统计所有匹配的记录数job_id

于 2012-11-25T23:06:09.653 回答