![](/img/trans.png)
[英]How to return rows from left table where condition on right table true on all row without sub query
[英]Query to return (grouped) rows where no row with column=condition exists
假設我有一個包含兩列的表,一個client_id和一個布爾值。
給定的client_id有多個數據條目,每個條目的布爾值都可以設置為true,也可以不設置為true。
我需要一個查詢,該查詢將僅返回沒有ROWS且將布爾值設置為true的client_id,並且需要按client_id進行分組。
我敢肯定,這很簡單,現在就讓我擺脫了。
使用HAVING
子句來過濾組:
SELECT client_id FROM my_table GROUP BY client_id HAVING SUM(boolean) = 0
注意, SUM(boolean)
在MySQL中有效,因為它沒有真正的布爾類型。 在其他RDBMS中,您要么必須使用其他聚合函數,要么測試布爾值並返回可在SUM()
使用的結果:
... HAVING SUM(CASE WHEN boolean THEN 1 END) = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.