我當前的問題是嘗試構建一個查詢,給定一個條件它給了我一個特定的計數。如何在SQL中使用IF THEN,具體場景
我需要提取已在我們網站上銷售商品的用戶列表,但目前沒有任何商品列出。結果應該是僅有當前未發佈項目的用戶列表。
我的查詢如下:
select `products`.`id` as 'product id', `users`.`id` as 'user id',
`users`.`full_name` as 'user full name',`users`.`email` as 'user email'
(CASE WHEN `products`.`is_published` = 1
THEN count(`products`.`ìs_published`) = 0
ELSE END)
from `users`,`products`
and `users`.`is_active` = 1
and `products`.`user_id` = `users`.`id`
group by `users`.`id`
order by 'user id' asc;
對於背景下,如果products.is_published = 1則意味着用戶有一個活項目,如果是= 0,這意味着該項目沒有公佈,因此賣家不活躍。但是,有些情況下,賣家可能有過去已售出的物品,再加上活物品,因此即使products.is_published = 0也會顯示出來,因爲它們都有。
任何幫助將不勝感激。
請編輯您的問題,並提供樣本數據和期望的結果。 –
我澄清了我的問題,讓我知道這是否有幫助。 @GordonLinoff – ramoncacho
好像你的'WHERE'在這裏丟失了。爲什麼不是你當前的查詢工作?我們無法訪問您的數據,也無法分辨,因此我們需要樣本數據和期望結果。檢查使用「新」的'JOIN' [語法](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx)。 –