我正在关注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而不是我的名字。怎么样?什么可以解决问题呢?
任何帮助都会很棒,谢谢!
答案 0 :(得分:1)
使用SELECT
表中的person
和IN
表中的person_pet
条件:
SELECT name
FROM person
WHERE id IN
(
SELECT person_id from person_pet
GROUP BY person_id
HAVING COUNT(pet_id) > 1
)