Sql Query - 查找由一群人拥有的项目

时间:2018-03-25 21:19:47

标签: sql

假设我有以下表格

Owner Table
item_id owner_id
  A       1
  A       2
  B       1
  B       2
  B       3

我想找到所有者1&所拥有的物品。 2只是项目A,而不是项目C

对此可能有什么疑问?

修改 如果不明显,则所有者列表将由用户给出,因此查询应该能够找到维持上述标准的给定所有者列表的项目(即,不是硬编码的)。

目前我正在使用像这样的查询

SELECT * FROM items WHERE id = (
      SELECT item_id FROM  item_owners WHERE owner_id in  (:ownerIds)
      GROUP BY item_id HAVING  COUNT(distinct owner_id) = :ownerCount LIMIT 1
)

:ownerIds:ownerCount是来自ORM的用户输入,items是我原始的项目表,用于保存项目的其他详细信息

问题是:这是一个正确的查询吗?它会在任何情况下失败吗?它有效吗?

1 个答案:

答案 0 :(得分:0)

这是对问题的原始版本的回答。

您可以使用select item_id from owner_item group by item_id having sum(case when owner_id = 1 then 1 else 0 end) > 0 and sum(case when owner_id = 2 then 1 else 0 end) > 0 and sum(case when owner_id not in (1, 2) then 1 else 0 end) = 0; var date = new Date(req.body.birthDate) //converting into date format date = date.toISOString() // converting to iso format date

执行此操作
$_SESSION['username']