我希望有人能帮我。
我需要搜索来筛选出数据库中的值。这个数据库有大约14000个考拉的记录,这些考拉已经被照料了。
每一个考拉都有自己的名字,也有自己的命运。

我需要提取的koalaName为考拉,已经被重新安置,拯救,或在护理,但消除koalaName,如果它最终被发现死亡。
在输出以上的情况下,亚历克在结果中被淘汰,因为他最终死了,被安乐死或被发现死亡。对于阿莱塔和亚历克斯,我只需要知道他们的名字一次。
这是我一直试图使用的查询。
SELECT `id`, `koalaName`, `fate`
FROM main A
WHERE EXISTS
(
SELECT `id`, `koalaName`, `fate`
FROM main B
WHERE A.koalaName = B.koalaName
AND B.`fate` REGEXP 'Released|Relocated|Care'
)
AND NOT EXISTS
(
SELECT `id`, `koalaName`, `fate`
FROM main B
WHERE A.koalaName = B.koalaName
AND B.`fate` REGEXP 'Died|Euth|Dead'
)我似乎无法将结果输出为单个值,而不是返回多个值。
亚历克斯只应该出现一次。
事先谢谢你,我想这很简单,但我似乎做不到。
发布于 2019-12-31 11:19:56
SELECT koalaName
FROM main
GROUP BY koalaName
HAVING SUM( fate IN ('Released', 'Relocated', 'Care') ) > 0
AND SUM( fate = 'Found Dead') = 0https://dba.stackexchange.com/questions/256503
复制相似问题