0

我有两张看起来像这样的桌子

餐桌狗:

PK, color
1,  red
2,  yellow
3,  red
4,  red
5,  yellow

狗有玩具。

桌上玩具

PK, FK, name
1,  2,  bowser
2,  2,  oscar
3,  3,  greg
4,  4,  alp
5,  4,  hanson
6,  5,  omar
7,  5,  herm

我需要一个查询来选择拥有多个玩具的所有黄狗的数量。

我在想类似的东西:

Select count(*)
from toys t, dogs d
where t.fk = d.pk
and d.color = 'yellow'
group by t.fk    
having count(t.fk) > 1;

它应该返回 2。但它返回多行

4

1 回答 1

1
select count(*)
from (
    select FK
    from Toys t
    inner join Dogs d on t.FK = d.PK
    where d."color" = 'yellow'
    group by FK
    having count(*) > 1
)

SQL 小提琴示例

于 2012-08-29T15:30:56.723 回答