我有以下查询:
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 :(得分: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)