0

在选择查询中,如果事务类型 1 存在,我想获得结果,它不检查事务类型 3,否则它应该选择事务类型 3。

基本上我必须选择在一段时间内没有充值账户并且必须到期余额的客户。但是在注册时,我分配了交易类型为 3 的初始余额。如果客户在该期限之前没有重新填充他的帐户并且拥有我在注册时分配的初始余额,我也需要使该余额到期。

SELECT customer.* FROM `customer` 
LEFT JOIN transaction ON (customer.ID=transaction.CUSTOMER_ID) 
WHERE transaction.CREATED_AT NOT Between '2013-02-06 00:00:00' AND '2013-08-05 23:59:59' 
AND transaction.TRANSACTION_TYPE_ID=1
AND transaction.transaction_status_id=3 AND customer.CUSTOMER_STATUS_ID=3 
GROUP BY customer.ID

此查询工作正常,并为我提供了未充值帐户的客户的记录,但是当我添加 OR Transaction_type_id=3 时,它没有给出所需的结果。

4

1 回答 1

0

使用 OR 时是否包括括号?

SELECT customer.* FROM `customer` 
LEFT JOIN transaction ON (customer.ID=transaction.CUSTOMER_ID) 
WHERE transaction.CREATED_AT NOT Between '2013-02-06 00:00:00' AND '2013-08-05 23:59:59' 
AND (transaction.TRANSACTION_TYPE_ID=1 OR transaction.TRANSACTION_TYPE_ID=3)
AND transaction.transaction_status_id=3 AND customer.CUSTOMER_STATUS_ID=3 
GROUP BY customer.ID
于 2013-08-06T06:35:39.110 回答