你能告诉我创建以下查询的最佳实践吗?
假设我有一个包含 3 个字段的表id, owner_id, data
。而且我必须执行一个 SELECT 查询,该查询将返回很多人拥有的数据。
我不能使用 OR SELECT data FROM posts WHERE owner_id = x OR owner_id = y
,因为当我必须进行查询时,我最终会得到 200 个所有者 ID。
你能告诉我创建以下查询的最佳实践吗?
假设我有一个包含 3 个字段的表id, owner_id, data
。而且我必须执行一个 SELECT 查询,该查询将返回很多人拥有的数据。
我不能使用 OR SELECT data FROM posts WHERE owner_id = x OR owner_id = y
,因为当我必须进行查询时,我最终会得到 200 个所有者 ID。
SELECT data
FROM posts
WHERE owner_id IN (x, y)
GROUP BY data
HAVING COUNT(*) = 2 // number of owners
DISTINCT
data
如果不是每个关键字都是唯一的,则关键字是必需的owner_id
。
HAVING COUNT(DISTINCT owner_id) = 2
你试过了吗
SELECT data FROM posts WHERE owner_id IN (x,y)
IN 语句可以从数组中生成:)