2013-03-01 92 views
0

我有以下查询:搜索特定的用户表

SELECT * 
FROM users 
WHERE id NOT 
IN (

SELECT user_id 
FROM `bids` 
WHERE DATE_SUB( DATE_ADD(CURDATE() , INTERVAL 7 
DAY) , INTERVAL 14 
DAY) <= created 
) 
AND id NOT 
IN (

SELECT user_id 
FROM coupon_used WHERE code = 'ACTNOW' 
) 
AND id 
IN (

SELECT user_id 
FROM accounts 
) 

我只想把特定的用户和对他们的搜索,而不是在表中的所有用户搜索。像我有ID为1,2,3,4,5的用户列表中,我只希望在这些用户

回答

0

搜索只需添加使用WHERE条款IN()

SELECT * 
FROM users 
WHERE id IN(1,2,3,4,5) 
0

我相信使用左外连接将简化您的查询并有望提高性能

SELECT users.* 
FROM users 
LEFT OUTER JOIN bids on bids.user_id = users.id AND DATE_SUB(DATE_ADD(CURDATE(), INTERVAL 7 DAY), INTERVAL 14 DAY) <= bids.created 
LEFT OUTER JOIN coupon_used on coupon_used.user_id = users.id AND coupon_used.code = 'ACTNOW' 
INNER JOIN accounts on accounts.user_id = users.id 
WHERE bids.id is null AND coupon_used.id is null 
    AND users.id in (1,2,3,4,5)