Mysql 使用IF control flow函数根据行的内容返回行

Mysql 使用IF control flow函数根据行的内容返回行,mysql,Mysql,好的,我有这个代码: SELECT COUNT(a.auction_id) AS amount, a.owner_id FROM auctions AS a INNER JOIN users AS u ON a.owner_id=u.user_id LEFT JOIN winners AS w ON a.auction_id=w.auction_id WHERE FROM_UNIXTIME(a.start_time) BETWEEN '2013-07

好的,我有这个代码:

SELECT 
    COUNT(a.auction_id) AS amount, a.owner_id
FROM 
    auctions AS a
    INNER JOIN users AS u ON a.owner_id=u.user_id
    LEFT JOIN winners AS w ON a.auction_id=w.auction_id
WHERE 
    FROM_UNIXTIME(a.start_time) BETWEEN '2013-07-01 00:00:00' AND '2013-07-31 23:59:59' 
AND 
    a.owner_id IN (100012,100027,100030,100063,100065)
AND 
    a.active=1 
AND 
    a.approved=1 
AND 
    a.is_relisted_item=0 
AND 
    a.is_draft=0    
GROUP BY 
    a.owner_id
HAVING 
    amount > 4;
我想做的事情如下,但我就是不知道怎么写

如果
a.list\u in='store'和a.closed=1
,则它必须出现在winners表中才能包含在结果集中。因此,基本上,
w.winner\u id
winners
表中不应为空,因此它将被包括在内

所以基本上,如果
a.list\u in='store'
这很好,应该包括在内,但是如果
a.list\u in='store'和a.closed=1
那么要包括它
w.winner\u id
就不能为空

我该怎么做

    SELECT 
    COUNT(a.auction_id) AS amount, a.owner_id
FROM 
    auctions AS a
    INNER JOIN users AS u ON a.owner_id=u.user_id
    LEFT JOIN winners AS w ON a.auction_id=w.auction_id
WHERE 
    FROM_UNIXTIME(a.start_time) BETWEEN '2013-07-01 00:00:00' AND '2013-07-31 23:59:59' 
AND 
    a.owner_id IN (100012,100027,100030,100063,100065)
AND 
    a.active=1 
AND 
    a.approved=1 
AND 
    a.is_relisted_item=0 
AND 
    a.is_draft=0 
AND (NOT(a.list_in = 'store' AND a.closed=1 ) OR (w.auction_id IS NOT NULL))   
GROUP BY 
    a.owner_id
HAVING 
    amount > 4;
这应该行得通

在where中添加了一个额外的条件

AND (NOT(a.list_in = 'store' AND a.closed=1 ) OR (w.auction_id IS NOT NULL))   

怎么样。。。和(a.closed=0或w.winner\u id不为NULL).
?您是否尝试过w.winner\u id不为NULL的
?还是我没抓住要点?@Vatev这行不通,因为如果
a.list\u in!='存储“
,则除非它在winners表中,否则不会被包括在内。只有
a.list\u in='store'
需要在winners表中,如果它已关闭。@NickydeMayer,只有在winners表中包含结果时才会包含结果;如果winners表是
a.list\u in='store'和a.closed=1
,则只需在winners表中找到它们。对不起,我认为不编写整个查询就足够明显了。我要再试一次:
。。。(不在赢家中的条件或(无论需要什么,赢家和w.winner的id不为空)…