1

我有两张桌子,一张是观察者,另一张是动物。

我试图获得看到超过 5 只动物或看到熊的观察者的名字。

我能够让观察者拥有超过 4 只动物,但不知道如何做 OR 语句。

这是我的代码:

SELECT o.last_name, o.first_name, a.observer_id, count (a.observer_id) as Animals_Seen
from animals as a inner join observer as o 
on a.observer_id = o.observer_id
group by a.observer_id, o.last_name, o.first_name
having count (a.observer_id) > 4;

这就是我得到的:

在此处输入图像描述

4

3 回答 3

1

它应该是 WHERE 子句

SELECT fields
FROM tables
WHERE COUNT(a.observer_id) > 4
OR a.observer_id = bear_id
于 2012-11-30T19:09:45.903 回答
1

每当发现熊时,将布尔值设置为 1...然后检查观察者的熊数是否 > 0:

select
    o.last_name, o.first_name, a.observer_id, count(a.observer_id) as Animals_Seen,
    sum(iif(a.animal = "bear", 1, 0)) as BearCount
from 
    animals as a inner join observer as o 
on 
    a.observer_id = o.observer_id
group by 
    a.observer_id, o.last_name, o.first_name
having
    count(a.observer_id) > 4 or sum(iif(a.animal = "bear", 1, 0)) > 0
于 2012-11-30T19:26:54.343 回答
0

只需将Or语句添加到 having 子句

SELECT o.last_name, o.first_name, a.observer_id, count (a.observer_id) as Animals_Seen
from animals as a inner join observer as o 
on a.observer_id = o.observer_id
group by a.observer_id, o.last_name, o.first_name
having count (a.observer_id) > 4 OR a.observer_id = 'bear';
于 2012-11-30T19:17:05.340 回答