質問編集履歴
4
画像差し替え
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
こちらの画像に質問をまとめさせていただきました。
|
4
|
-

|
5
5
|
|
6
6
|
最終的な目標としては
|
7
7
|
➀main_datas
|
3
画像の差し替え、誤字訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
こちらの画像に質問をまとめさせていただきました。
|
4
|
-

|
5
5
|
|
6
6
|
最終的な目標としては
|
7
7
|
➀main_datas
|
@@ -22,7 +22,7 @@
|
|
22
22
|
冒頭の画像の値を入れたテーブルをご用意いたしました。
|
23
23
|
[SQL fiddle](http://sqlfiddle.com/#!9/96e6f4/5)
|
24
24
|
|
25
|
-
※
|
25
|
+
※Orlofsky様からご指摘を受け、上記SQL fiddleのコードを下記に掲載させて頂きます。
|
26
26
|
```SQL
|
27
27
|
# main_datas の作成
|
28
28
|
CREATE TABLE main_datas
|
2
SQL fiddleのコードを質問本文に掲載
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,7 +22,52 @@
|
|
22
22
|
冒頭の画像の値を入れたテーブルをご用意いたしました。
|
23
23
|
[SQL fiddle](http://sqlfiddle.com/#!9/96e6f4/5)
|
24
24
|
|
25
|
+
※Oriofsky様からご指摘を受け、上記SQL fiddleのコードを下記に掲載させて頂きます。
|
26
|
+
```SQL
|
27
|
+
# main_datas の作成
|
28
|
+
CREATE TABLE main_datas
|
29
|
+
(`main_id` int, `unique_name` varchar(5), `nick_name` varchar(2))
|
30
|
+
;
|
31
|
+
INSERT INTO main_datas
|
32
|
+
(`main_id`, `unique_name`, `nick_name`)
|
33
|
+
VALUES
|
34
|
+
(1, 'one', '一郎'),
|
35
|
+
(2, 'two', '次郎'),
|
36
|
+
(3, 'three', '三郎')
|
37
|
+
;
|
25
38
|
|
39
|
+
# sub_datas の作成
|
40
|
+
CREATE TABLE sub_datas
|
41
|
+
(`sub_id` int, `user_id` int, `sub_key` varchar(7), `sub_val` varchar(3))
|
42
|
+
;
|
43
|
+
INSERT INTO sub_datas
|
44
|
+
(`sub_id`, `user_id`, `sub_key`, `sub_val`)
|
45
|
+
VALUES
|
46
|
+
(1, 1, 'age', '10歳'),
|
47
|
+
(2, 1, 'address', '東京'),
|
48
|
+
(3, 2, 'age', '20歳'),
|
49
|
+
(4, 2, 'address', '神奈川'),
|
50
|
+
(5, 3, 'age', '30歳'),
|
51
|
+
(6, 3, 'address', '千葉')
|
52
|
+
;
|
53
|
+
|
54
|
+
# action_datas の作成
|
55
|
+
CREATE TABLE action_datas
|
56
|
+
(`action_id` int, `action_name` varchar(8), `action_date` varchar(4), `actor_id` int, `target_id` int, `target_type` varchar(6))
|
57
|
+
;
|
58
|
+
INSERT INTO action_datas
|
59
|
+
(`action_id`, `action_name`, `action_date`, `actor_id`, `target_id`, `target_type`)
|
60
|
+
VALUES
|
61
|
+
(1, 'follow', '1月1日', 1, 2, 'user'),
|
62
|
+
(2, 'follow', '2月2日', 1, 20, 'thread'),
|
63
|
+
(3, 'follow', '3月3日', 2, 20, 'thread'),
|
64
|
+
(4, 'favorite', '4月4日', 3, 2, 'user'),
|
65
|
+
(5, 'follow', '5月5日', 3, 20, 'thread'),
|
66
|
+
(6, 'favorite', '6月6日', 1, 3, 'user')
|
67
|
+
;
|
68
|
+
|
69
|
+
```
|
70
|
+
|
26
71
|
### 試したこと
|
27
72
|
まずは➃のテーブルを作る原型となる➀➁の連結はできました。
|
28
73
|
|
1
コード訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,7 +42,15 @@
|
|
42
42
|
問題の部分ですが、下記のようにサブクエリの中で「# サブクエリを使いthread_id=20をfollowした人を取得」として、上の「#ここにfollow_date」と「#ここにfavorite_date」に入れてみたのですが、このあたりかなりわかっておらず、お目汚しかとは存じますがこのレベルです。
|
43
43
|
```
|
44
44
|
# ➃のテーブル
|
45
|
-
|
45
|
+
SELECT
|
46
|
+
m.main_id,
|
47
|
+
m.unique_name AS unique_name,
|
48
|
+
m.nick_name AS nick_name,
|
49
|
+
(select sub_val from sub_datas where user_id = m.main_id and sub_key = 'age' ) as age,
|
50
|
+
(select sub_val from sub_datas where user_id = m.main_id and sub_key = 'address' ) as address,
|
51
|
+
(select action_date from followers where actor_id = u.ID ) as follow_date,
|
52
|
+
(select action_date from followers where actor_id = u.ID ) as favorite_date,
|
53
|
+
FROM main_datas m;
|
46
54
|
|
47
55
|
# サブクエリを使いthread_id=20をfollowした人を取得
|
48
56
|
WHERE
|