根据另一列中的不同值选择重复值

时间:2011-04-21 22:29:53

标签: php mysql

好的,我们假设我有一个包含三列的表格。第一列是唯一ID,第二列是用户名,第三列是用户拥有的项。

我想要做的是从items行中选择两个不同用户名所拥有的值。我该怎么做呢?所以对于假设的缘故,我可以说我想看看鲍勃和露丝都拥有的物品。

非常感谢任何帮助。

有没有办法可以发表表格来举例说明我在说什么?

2 个答案:

答案 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'

这也有助于实现规范化,这通常是建立数据库时要遵循的清洁/有组织的礼仪。