好的,我们假设我有一个包含三列的表格。第一列是唯一ID,第二列是用户名,第三列是用户拥有的项。
我想要做的是从items行中选择两个不同用户名所拥有的值。我该怎么做呢?所以对于假设的缘故,我可以说我想看看鲍勃和露丝都拥有的物品。
非常感谢任何帮助。
有没有办法可以发表表格来举例说明我在说什么?
答案 0 :(得分:2)
基于我认为您的表结构是......
SELECT i.itemid,
i.description
FROM items i
JOIN useritemrelationship r
ON i.itemid = r.itemid
JOIN users u
ON u.userid = r.userid
WHERE u.name in ( 'Ruth', 'Bob' )
GROUP BY i.itemid
HAVING COUNT(DISTINCT r.userid) = 2
答案 1 :(得分:0)
我可能会建议为至少包含三个字段的项目创建一个新表:itemID(如果项目名称不唯一),itemName和ownerID。然后从新表中查询:
SELECT itemName FROM items WHERE ownerID='ruths id' OR ownerID='bobs ID'
这也有助于实现规范化,这通常是建立数据库时要遵循的清洁/有组织的礼仪。