0

このような2つのテーブルがあります

テーブルドッグ:

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 に答える