私はトランザクションと項目という2つのテーブルを使用しています。取引MySQL内部ジョイントと複数の条件
C_ID - State - Time
1 Start 2016-07-13 16:02:42
1 Passed 2016-07-13 20:28:21
2 Passed 2016-07-11 17:39:13
3 Passed 2016-07-07 20:23:00
4 Start 2016-07-01 13:19:54
4 Passed 2016-07-01 17:37:41
5 Start 2016-07-07 16:16:21
5 Passed 2016-07-07 21:04:01
6 Passed 2016-07-07 21:11:39
7 Passed 2016-07-08 20:30:46
は表2:
表1以下を参照して後述するようにアイテム
C_No - C_ID
C1 - 5
C2 - 3
C3 - 9
C4 - 7
C5 - 6
C6 - 8
C7 - 2
C8 - 4
C9 - 10
C10 - 1
私は、これらのテーブルを結合して出力を必要としたいと思います。 2つのテーブルを結合することに加え
出力
C_No - State - Time
C10 - Start 2016-07-13 16:02:42
C10 - Passed 2016-07-13 20:28:21
C8 - Start 2016-07-01 13:19:54
C8 - Passed 2016-07-01 17:37:41
C1 - Start 2016-07-07 16:16:21
C1 - Passed 2016-07-07 20:00:01
、私は国家と時間のフィルタをしたいです。条件は(State = 'Start'とTime < = 17:00)、(State = 'Passed'、Time < = 21:00)
です。合格。
私は次のクエリ
{SELECT distinct(c.C_No), p.State, p.Time FROM Items c
inner join Transitions p on p.c_id = c.c_id and date(p.Time) between '2016-07-01' and CURRENT_DATE()
and ((p.State = 'Start' and time(p.Time) <= '17:00:00') or p.State = 'Passed')
order by c.C_No, State;}
SQLFiddleを使用し、質問に追加されました。
はsqlfiddleを作成して、URLを共有しています。私には少なくとも、私はそれなしで質問を試みることを迷惑にならないでしょう。しかし、それは私だけです。 – Drew
http://sqlfiddle.com/#!9/f05f9f/6 – Chakde
フィデルありがとうございました。私はチャンスを得る時を見ます。私はいくつかの人々を引き付けるように質問を修正しました。 – Drew