假设我有以下表格
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
是我原始的项目表,用于保存项目的其他详细信息
问题是:这是一个正确的查询吗?它会在任何情况下失败吗?它有效吗?
答案 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']