質問編集履歴
8
見やすく修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,13 +50,11 @@
|
|
50
50
|
|
51
51
|
SELECT P.name,A.price,max(A.reserch_date),B.price,max(B.reserch_date),A.price-B.price
|
52
52
|
|
53
|
-
from products as P
|
53
|
+
from products as P
|
54
54
|
|
55
|
-
on P.id = A.product_id
|
55
|
+
INNER JOIN ashops as A on P.id = A.product_id
|
56
56
|
|
57
|
-
JOIN bshops as B
|
58
|
-
|
59
|
-
on P.id = B.product_id
|
57
|
+
JOIN bshops as B on P.id = B.product_id
|
60
58
|
|
61
59
|
GROUP BY P.id;
|
62
60
|
|
7
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -75,3 +75,7 @@
|
|
75
75
|
↓bshopのデータ
|
76
76
|
|
77
77
|
![イメージ説明](0ab942b1efbcd1b817c56f20dcbe61a5.png)
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
テーブル構造などが変わってもかまいません。良い方法があればご教授ください。
|
6
画像追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -67,3 +67,11 @@
|
|
67
67
|
|
68
68
|
|
69
69
|
ここまでは書いてみましたが、これだと最新のreserch_dateと同じ行のpriceが出力されません。
|
70
|
+
|
71
|
+
↓SQL出力結果
|
72
|
+
|
73
|
+
![イメージ説明](56074906703e25466864020f181c7f82.png)
|
74
|
+
|
75
|
+
↓bshopのデータ
|
76
|
+
|
77
|
+
![イメージ説明](0ab942b1efbcd1b817c56f20dcbe61a5.png)
|
5
誤字
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
【ashopsテーブル】--A店で調査した商品価格と日時
|
9
|
+
【ashopsテーブル】--A店で調査した商品価格と日時
|
10
10
|
|
11
11
|
id
|
12
12
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
【bshopsテーブル】--B店で調査した商品価格と日時
|
21
|
+
【bshopsテーブル】--B店で調査した商品価格と日時
|
22
22
|
|
23
23
|
id
|
24
24
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
price
|
28
28
|
|
29
|
-
researchdate
|
29
|
+
research_date
|
30
30
|
|
31
31
|
|
32
32
|
|
4
変更点
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
【
|
1
|
+
【productsテーブル】
|
2
2
|
|
3
|
-
|
3
|
+
id
|
4
4
|
|
5
|
-
|
5
|
+
name
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
【
|
9
|
+
【ashopsテーブル】--A店で調査した商品価格と日時と入力
|
10
10
|
|
11
|
-
|
11
|
+
id
|
12
12
|
|
13
|
-
|
13
|
+
product_id
|
14
14
|
|
15
|
-
|
15
|
+
price
|
16
16
|
|
17
|
-
|
17
|
+
research_date
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
【
|
21
|
+
【bshopsテーブル】--B店で調査した商品価格と日時と入力
|
22
22
|
|
23
|
-
|
23
|
+
id
|
24
24
|
|
25
|
-
|
25
|
+
product_id
|
26
26
|
|
27
|
-
|
27
|
+
price
|
28
28
|
|
29
|
-
|
29
|
+
researchdate
|
30
30
|
|
31
31
|
|
32
32
|
|
@@ -38,9 +38,9 @@
|
|
38
38
|
|
39
39
|
同じproducts_idで
|
40
40
|
|
41
|
-
ashops.researchdateが最新のashops.price(A店の最新価格)と
|
41
|
+
ashops.research_dateが最新のashops.price(A店の最新価格)と
|
42
42
|
|
43
|
-
bshops.researchdateが最新のbshops.price(B店の最新価格)の差を
|
43
|
+
bshops.research_dateが最新のbshops.price(B店の最新価格)の差を
|
44
44
|
|
45
45
|
降順で並べ替えたいのですがSQL文の書き方がわかりません。
|
46
46
|
|
3
MySQLに限った質問に変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
MySQL 3つのテーブルを結合 差を降順で並べ替えたい
|
test
CHANGED
@@ -42,14 +42,28 @@
|
|
42
42
|
|
43
43
|
bshops.researchdateが最新のbshops.price(B店の最新価格)の差を
|
44
44
|
|
45
|
-
降順で並べ替えたいのですが
|
45
|
+
降順で並べ替えたいのですがSQL文の書き方がわかりません。
|
46
|
-
|
47
|
-
CakePHP3でどのように実装したらいいでしょうか?
|
48
46
|
|
49
47
|
|
50
48
|
|
49
|
+
```MySQL
|
50
|
+
|
51
|
+
SELECT P.name,A.price,max(A.reserch_date),B.price,max(B.reserch_date),A.price-B.price
|
52
|
+
|
53
|
+
from products as P INNER JOIN ashops as A
|
54
|
+
|
55
|
+
on P.id = A.product_id
|
56
|
+
|
57
|
+
JOIN bshops as B
|
58
|
+
|
59
|
+
on P.id = B.product_id
|
60
|
+
|
61
|
+
GROUP BY P.id;
|
51
62
|
|
52
63
|
|
53
|
-
※同じ商品のA店、B店の最新の価格差が取れれば良いので
|
54
64
|
|
65
|
+
```
|
66
|
+
|
67
|
+
|
68
|
+
|
55
|
-
|
69
|
+
ここまでは書いてみましたが、これだと最新のreserch_dateと同じ行のpriceが出力されません。
|
2
テーブル設計
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
【A店リサーチテーブル】
|
9
|
+
【A店リサーチテーブル】--A店で調査した商品価格を入力
|
10
10
|
|
11
11
|
ashops.id
|
12
12
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
【B店リサーチテーブル】
|
21
|
+
【B店リサーチテーブル】--A店で調査した商品価格を入力
|
22
22
|
|
23
23
|
bshops.id
|
24
24
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
![イメージ説明](aa270dfc8a7d771e9d0477db0ded7533.png)
|
34
34
|
|
35
|
-
![イメージ説明](1
|
35
|
+
![イメージ説明](530c1880652393f4d4b25be5e934a41b.png)
|
36
36
|
|
37
37
|
|
38
38
|
|
1
テーブル説明
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,6 +30,12 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
+
![イメージ説明](aa270dfc8a7d771e9d0477db0ded7533.png)
|
34
|
+
|
35
|
+
![イメージ説明](1485fd01598f440d2cf0d197a1699a2e.png)
|
36
|
+
|
37
|
+
|
38
|
+
|
33
39
|
同じproducts_idで
|
34
40
|
|
35
41
|
ashops.researchdateが最新のashops.price(A店の最新価格)と
|