搜索表中的特定用户

时间:2013-03-01 16:58:52

标签: mysql sql database

我有以下查询:

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的用户列表一样,我只想搜索这些用户

2 个答案:

答案 0 :(得分:0)

只需使用WHERE

添加IN()子句即可
SELECT * 
FROM users
WHERE id IN(1,2,3,4,5)

答案 1 :(得分: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)