質問編集履歴

1

ご指摘を受けて質問内容、及び、サンプルデータ、取得したい情報を修正、追記しております。

2017/10/02 04:17

投稿

tkda
tkda

スコア23

test CHANGED
File without changes
test CHANGED
@@ -1,16 +1,38 @@
1
- 例えば下記のようなテーブルにおいて例えばoutput_dateが今日ののを全件取得する際に、**直前のstatus_idを合せ取得した**と考えております。
1
+ 現在、下記のテーブルのように、日商品状態item_statusテーブルで保存しています。
2
-
3
-
4
-
5
- ただし、単純に昨日のstatus_idを取得するというものではなく、**今日のstatus_idと異なる、もっとも新しいstatus_idを直前のstatus_id**と定義しております(存在しない場合はNULL)。
6
2
 
7
3
 
8
4
 
9
5
  ```lang-mysql
10
6
 
11
- CREATE TABALE `items` (
7
+ CREATE TABALE `items(商品)` (
12
8
 
13
9
  `id` int(11) NOT NULL AUTO_INCREMENT,
10
+
11
+ `name` varchar(16) NOT NULL,
12
+
13
+ PRIMARY KEY (`id`),
14
+
15
+ );
16
+
17
+
18
+
19
+ CREATE TABALE `status(状態)` (
20
+
21
+ `id` int(11) NOT NULL AUTO_INCREMENT,
22
+
23
+ `name` varchar(16) NOT NULL,
24
+
25
+ PRIMARY KEY (`id`),
26
+
27
+ );
28
+
29
+
30
+
31
+ CREATE TABALE `items_status` (
32
+
33
+ `id` int(11) NOT NULL AUTO_INCREMENT,
34
+
35
+ `item_id` int(1) NOT NULL,
14
36
 
15
37
  `status_id` int(2) NOT NULL,
16
38
 
@@ -22,4 +44,82 @@
22
44
 
23
45
  ```
24
46
 
47
+ 今回、例えばoutput_dateが今日のものを全件取得する際に、**直前のstatusを合せて取得したい**と考えております。
48
+
49
+
50
+
51
+ ただし、単純に昨日のstatusを取得するというものではなく、**今日のstatusと異なる、もっとも直近のstatus**を直前のstatusと定義しております(存在しない場合はNULL)。
52
+
53
+
54
+
55
+ 追記:
56
+
57
+ サンプルデータと取得したい情報は以下のとおりです。
58
+
59
+
60
+
61
+ ###items(商品)
62
+
63
+ |id|name|
64
+
65
+ |:--|:--|
66
+
67
+ |1|サーモン|
68
+
69
+ |2|昆布|
70
+
71
+
72
+
73
+
74
+
75
+ ###status(状態)
76
+
77
+ |id|name|
78
+
79
+ |:--|:--|
80
+
81
+ |1|good|
82
+
83
+ |2|poor|
84
+
85
+ |3|bad|
86
+
87
+
88
+
89
+
90
+
91
+ ###items_status
92
+
93
+ |id|item_id|status_id|output_date|
94
+
25
- どうぞよろしくお願いいたします。
95
+ |:--|:--|:--|:--|
96
+
97
+ |1|1|1|2017-09-01|
98
+
99
+ |2|2|1|2017-09-01|
100
+
101
+ |3|1|2|2017-09-02|
102
+
103
+ |4|2|1|2017-09-02|
104
+
105
+ |5|1|3|2017-09-03|
106
+
107
+ |6|2|1|2017-09-03|
108
+
109
+ |7|1|3|2017-09-04|
110
+
111
+ |8|2|1|2017-09-04|
112
+
113
+
114
+
115
+
116
+
117
+ ###取得したい情報(output_date: 2017-09-04を指定)
118
+
119
+ |items.name|status.name|status.name(直前)|output_date|
120
+
121
+ |:--|:--|:--|
122
+
123
+ |サーモン|bad|poor|2017-09-04|
124
+
125
+ |昆布|good|NULL|2017-09-04|