SELECT *
FROM users
WHERE id
IN (2024)
AND id NOT IN (
SELECT user_id
FROM `used`
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 = 'XXXXX')
AND id IN (
SELECT user_id
FROM accounts)
나는 사용자 테이블에 ID가 2024이지만이 ID는 사용 된 테이블에 있습니다. 그래서이 쿼리를 실행하면 2024 개의 id도 필터링되어 표시됩니다. 특정 사용자를 선택한 쿼리를 실행 한 다음이 사용자가 사용중인 테이블에 있지 않아야한다고 필터링하도록합니다. 그러나 위의 쿼리는 나에게 욕망 결과를주지 않습니다. Desire 결과는 다음과 같은 조건으로 사용자를 선택하고자하는 것입니다. 특정 사용자를 데리고 coupon_used 테이블이 아닌 used table에 있는지 확인하십시오. 그러나 accounts 테이블에 있어야합니다.이 쿼리를 수정하고 다시 쓰는 방법은 무엇입니까?
어제 전회 사용자 ID 2024가 사용 된 테이블에 한 행을 추가 했으므로 제외되어야합니다. 그러나 왜 그가 배제되지 않았는가? 이'used'에 따르면 users.id ='used'.user_id와 DATE_SUB (DATE_ADD (CURDATE(), INTERVAL 7 DAY), INTERVAL 14 DAY) <='used'가 생성되었습니다. – Akaash
@Matt Busche - 동의했습니다. 내가 이너 조인을 사용했다고 생각했기 때문에 손가락 문제. 이제 해결되었습니다. Ta – Kickstart
@Akaash - 그것을 제외해야합니다 (심지어 잭이 지적한 복잡한 날짜 조작 포함). 테이블 선언 및 샘플 데이터를 게시 할 수 있습니까? – Kickstart