teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

画像差し替え

2020/02/01 12:10

投稿

ikatako
ikatako

スコア270

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  こちらの画像に質問をまとめさせていただきました。
4
- ![イメージ説明](efb4b0b2852456d6174bb3649f60d029.jpeg)
4
+ ![イメージ説明](cbb6ba762cd7fb11b1e53e466bf81d6f.jpeg)
5
5
 
6
6
  最終的な目標としては
7
7
  ➀main_datas

3

画像の差し替え、誤字訂正

2020/02/01 12:10

投稿

ikatako
ikatako

スコア270

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  こちらの画像に質問をまとめさせていただきました。
4
- ![イメージ説明](c1d14b394207c38da1a0721d951d20cd.jpeg)
4
+ ![イメージ説明](efb4b0b2852456d6174bb3649f60d029.jpeg)
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
- Oriofsky様からご指摘を受け、上記SQL fiddleのコードを下記に掲載させて頂きます。
25
+ Orlofsky様からご指摘を受け、上記SQL fiddleのコードを下記に掲載させて頂きます。
26
26
  ```SQL
27
27
  # main_datas の作成
28
28
  CREATE TABLE main_datas

2

SQL fiddleのコードを質問本文に掲載

2020/02/01 11:55

投稿

ikatako
ikatako

スコア270

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

コード訂正

2020/02/01 09:20

投稿

ikatako
ikatako

スコア270

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