1

ここでSQL初心者、いくつかの基本を行う方法を学ぶだけです。INSQLiteで作業している場合、条件の配列がある場合は、次のようにを使用して一致するものを検索できます。

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

この不自然な例では、これにより、ジョブIDが1、2、または3の人が表示されます。ただし、別のケースでは、これをALL条件にするにはどうすればよいですか。つまり。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 BYありHAVING、一致するすべてのレコード数をカウントすることです。job_id

于 2012-11-25T23:06:09.653 に答える