「ユーザー」と呼ばれるテーブルと「アイテム」と呼ばれるテーブルの 2 つのテーブルがあります。フィールド users.eventdate が現在から 3 日以内にあるユーザーからの ID のリストをコンパイルしようとしています。さらに複雑にするために、items.startingdate が今から 3 日以内かどうかも調べています。
したがって、users.eventdate が現在から 3 日以内であるか、現在から 3 日以内に item.startdate がある場合は、users.ID を返します。ユーザーとアイテムの関係は、users.ggProjectId と items.uID です。
私は現在持っています:
$strSQL = "SELECT users.ID, users.ggProjectId, users.timezone, users.ggTimestamp, users.slug, items.uID
FROM items
JOIN users ON users.ggProjectId = items.uID
WHERE ( users.eventdate <= DATE( NOW( ) + INTERVAL 2 DAY )
AND users.eventdate >= DATE( NOW( ) - INTERVAL 2 DAY )) OR
( items.startingtime <= DATE( NOW( ) + INTERVAL 2 DAY )
AND items.startingtime >= DATE( NOW( ) - INTERVAL 2 DAY ))
GROUP BY users.ggProjectId";
問題は、ユーザー レコードのアイテムがない場合、eventdate が時間枠内にあるため、必要であっても結果として得られないことです。それを殺しているのはJOINだと思います。