私は2つのテーブル「USERS」と「CALENDER」を持っています。カレンダーテーブルのユーザーは、利用可能日を配置します。これは、1対多の関係を意味します。
今、私は利用可能日(今日の日付は今日利用可能であることを意味します)でユーザーリストを取得したいと思います。つまり、今日利用可能なユーザーを一番上に表示し、次に将来利用可能になるユーザーを表示し、次に利用できないユーザーを表示したいt可用性(つまり、カレンダーに記録がない)。
私は以下のクエリで試しています:
SELECT u.first_name, c.date
FROM users AS u
LEFT JOIN calendar AS c ON (c.uid = u.id)
GROUP BY u.id
ORDER BY DATE(c.date) ASC
しかし、これにより、カレンダーで可用性を持たないユーザーから始めて、次に可用性はあるが過去のユーザーによって記録が得られます。結果を以下に示します。
User1 NULL User13 2012-12-12 00:00:00
User2 NULL User12 2012-12-12 00:00:00
User3 NULL User10 2012-12-23 00:00:00
User4 NULL User10 2012-12-24 00:00:00
User5 NULL User9 2012-12-25 00:00:00
User6 NULL - Want To look this => User8 2012-12-27 00:00:00
User7 2012-09-20 00:00:00 User7 2012-12-28 00:00:00
User8 2012-09-29 00:00:00 User1 NUL
User9 2012-10-25 00:00:00 User2 NUL
User10 2012-10-26 00:00:00 User3 NUL
User11 2012-10-27 00:00:00 User4 NUL
User12 2012-12-05 00:00:00 User5 NUL
User13 2012-12-10 00:00:00 User6 NUL