私は状況に直面しており、助けが必要です。私は2つのテーブルを持っています:
ユーザー:
user_id
,fname
,lname
,email
.
ユーザータイムシート:
time_id
、、、、、。user_id
_month
_state
_date
ユーザーは状態 = 'no' でテーブルに時間を追加user_time
し、月末にその時間を送信すると、月が 6 月であると仮定して状態 = 'yes' に変更されます。すべてのユーザーを取得するクエリを作成したい時間をまったく追加しなかったユーザーと、時間を追加したが JUNE に送信していないユーザー。
これは私の質問です。
SELECT user_timesheet.time_id, user_timesheet.user_id,
user_timesheet.month, user_timesheet.`state`,
`user`.user_id, `user`.fname, `user`.lname,
`user`.email
FROM user LEFT JOIN
user_timesheet ON user.user_id=user_timesheet.user_id
WHERE (
user_timesheet.state = 'no' OR
user_timesheet.state IS NULL)
AND (
user_timesheet.month = 'june' OR
user_timesheet.month IS NULL)
GROUP BY user.user_id
結果は、6 月に時間を追加したがそれを送信したすべてのユーザーと、参加してからシステムに時間を追加したことがないユーザーをもたらします。ただし、前月に時間を追加したり提出したりしたものの、6 月の時間をまったく追加していないユーザーは表示されません。