[英]MySQL GROUP BY if condition
僅當具有相同movie_id
所有行都具有convert=2
我才想返回movie_id
。 如果具有相同movie_id
的行的convert=0
則不返回movie_id
。
例子:
這應該不返回任何內容,因為所有三行都具有相同的 movie_id 但在最后一行上 convert=0
+----+----------+------------+------------+--------------+---------+
| id | movie_id | lang | email_sent | user_request | convert |
+----+----------+------------+------------+--------------+---------+
| 1 | 1 | german | 0 | 1 | 2 |
| 2 | 1 | french | 0 | 1 | 2 |
| 3 | 1 | english | 0 | 1 | 0 |
+----+----------+------------+------------+--------------+---------+
這應該返回movie_id
因為所有三行都具有相同的movie_id,並且所有行的convert=2
+----+----------+------------+------------+--------------+---------+
| id | movie_id | lang | email_sent | user_request | convert |
+----+----------+------------+------------+--------------+---------+
| 1 | 1 | german | 0 | 1 | 2 |
| 2 | 1 | french | 0 | 1 | 2 |
| 3 | 1 | english | 0 | 1 | 2 |
+----+----------+------------+------------+--------------+---------+
這是我的查詢,但當我嘗試使用第二個示例數據時movie_id
,仍然返回movie_id
SELECT movie_id
from movie_subtitles
WHERE email_sent=0 AND user_request=1
GROUP BY CASE WHEN `convert`=2 THEN movie_id END
ORDER BY id ASC
LIMIT 1
我該如何解決?
你需要一個像這樣的 HAVING 子句:
SELECT movie_id
FROM movie_subtitles
WHERE email_sent=0 AND user_request=1
GROUP BY movie_id
HAVING SUM(Convert <> 2) = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.