如何从SQLite中的另一个表中选择具有重复值的列

时间:2015-03-20 21:13:11

标签: sql sqlite

我正在关注Zed Shaw的LearnSQLthehardway,我想弄清楚如何从拥有多只宠物的桌上人那里选择名字(表宠物中的宠物信息)。

person_pet Table:    

person_id    pet_id
    0           0
    0           1
    1           1
    1           2
    2           3

person Table:

    id        name
     0         Zed
     1         Orange
     2         Limen


pet Table:

    id        name
     0         Jag
     1         Black
     2         Fluffy
     3         Mister

我一直在尝试使用COUNT函数,但似乎无法获得正确的结果。我必须根据这些数据返回Zed和Orange。

SELECT name FROM person, person_pet WHERE id = 
(SELECT person_id FROM person_pet GROUP BY person_id HAVING COUNT(person_id) > 1);

这只是返回Zed而不是我的名字。怎么样?什么可以解决问题呢?

任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:1)

使用SELECT表中的personIN表中的person_pet条件:

SELECT name 
FROM person 
WHERE id IN 
(
    SELECT person_id from person_pet
    GROUP BY person_id
    HAVING COUNT(pet_id) > 1
)