私は2つの単純なテーブルを持っています:
- 従業員
- 従業員レポート
従業員は、1 日 1 レポートを提出することが期待されています。
今、ここに必要性があります: 従業員によって提出されたすべてのレポートを一目で見ることができます。レポートのない従業員は空白のレポートフィールドを表示するだけです..基本的に、これは、レポートがあるかどうかに関係なく、すべての従業員がリストされることを意味します
私のGUIでの出力例:
2012-01-03
Employee 1 : I ate a burger
Employee 2 : I ate french frice
Employee 3 :
Employee 4 : i ate hotdog
これは、複数の SQL クエリで簡単に実行できます。1 つはすべての従業員を特定の順序で一覧表示するためのもので、もう 1 つは従業員の各レポートを照会するためのものです。
もちろん、それは効率的ではありません..
employee テーブルの employee_reports の LEFT JOIN は簡単に作成できますが、
問題: 特定のレポートの日付をターゲットにする必要があるため、mYSQL はレポートのある従業員のみを出力します。提出しなかった従業員はリストされません。
ここに私の基本的なSQLのサンプルがあります
SELECT
employees.eid,
employees.fname,
employees.lname,
employee_reports.report
FROM
employees
LEFT JOIN employee_reports ON employees.eid = employee_reports.eid
WHERE
report_date = '2013-01-03'
これを 1 回のクエリで実行できますか?