3つのテーブルのデータを結合しようとしていますが、正確な構文がわかりません。joinを使用して2つ以上のテーブルからデータを選択する
私は以下のようなデータセットを持っており、誰がレコードで何をしたのかの履歴を示しています。各レコードの一意の識別子は「ID」に示され、「レコード番号」はレコードとの各対話に割り当てられる連続番号です。
ID Rec No Who Type 1 1 Bob New 1 2 Bob Open 1 3 Bob Assign 1 4 Sarah Add 1 5 Bob Add 1 6 Bob Close 2 1 John New 2 2 John Open 2 3 John Assign 2 4 Bob Assign 2 5 Sarah Add 2 6 Sarah Close 3 1 Sarah New 3 2 Sarah Open 3 3 Sarah Assign 3 4 Sarah Close
すべての「割り当て」操作を見つける必要があります。しかし、複数の「Assign」が特定のIDにある場合は、最初のIDを探したいと思います。私はそれをした人の名前を見つけたいと思っています。
これまでのところは良い出力
+------+--------------+ | WHO | COUNT(IH.ID) | +------+--------------+ | Bob | 1 | | John | 1 | +------+--------------+
を生成
mysql> SELECT IH.WHO, COUNT(IH.ID)
-> FROM INCIDENTS_H IH
-> JOIN(
-> SELECT ID, MIN(RECNO) AS RECNO
-> FROM INCIDENTS_H
-> WHERE TYPE = 'ASSIGN'
-> GROUP BY ID
->)IH2
-> ON IH2.ID = IH.ID AND IH2.RECNO = IH.RECNO
-> GROUP BY IH.WHO
-> ;
は - 現時点で私が持っているコードに。しかし、私はまた、インシデントと呼ばれる別のテーブルに保持されている日付に基づいて出力を制限する必要があります。この表のデータは、ID列が両方の表で同じ数であるため、使用するADDEDDATE見つけるために使用することができるformat-
+------+------------+ | ID | ADDEDDATE | +------+------------+ | 1 | 2011-06-01 | | 2 | 2011-06-03 | +------+------------+
です。だから、誰もコードを上記のコードを変更して、2011年6月3日の日付を追加したレコードに出力を制限することができますか?私は、MySQL 5.1.40
迅速な応答のための非常に素晴らしい、おかげで動作します。 – Andy
A pley、@Andy –