Mysql

幫助過濾掉MYSQL中的記錄

  • January 1, 2020

我希望有人能幫助我。

我需要搜尋以過濾出數據庫中的值。該數據庫有大約 14 000 條考拉記錄。

每隻考拉都有自己的名字,命運也隨之而來。

數據庫欄位的小輸出。

我需要為已重新安置、獲救或照顧的考拉提取 koalaName,但如果它最終被發現死亡,則刪除 koalaName。

在上述輸出的情況下,Alec 在結果中被淘汰,因為他最終死亡、安樂死或被發現死亡。在 Aleta 和 Alex 的情況下,我只需要知道他們的名字一次。

這是我一直在嘗試使用的查詢。

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'
)

我似乎無法獲得將 koalaName 輸出為單個值而不是返回多個值的結果

例如,Alex 應該只出現一次。

非常感謝,我認為它很簡單,但我似乎無法做到。

SELECT koalaName
FROM main  
GROUP BY koalaName
HAVING SUM( fate IN ('Released', 'Relocated', 'Care') ) > 0
  AND SUM( fate = 'Found Dead') = 0

引用自:https://dba.stackexchange.com/questions/256503