質問編集履歴
1
追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,6 @@
|
|
9
9
|
- グループでもメッセージを送れる
|
10
10
|
- グループにはユーザーを追加、削除できる
|
11
11
|
- グループ名を変えられる
|
12
|
-
- 全メッセージの中から文字queryで検索可能
|
13
12
|
=============
|
14
13
|
|
15
14
|
```lang-sql
|
@@ -52,21 +51,21 @@
|
|
52
51
|
foreign key (id) references users(id)
|
53
52
|
);
|
54
53
|
|
55
|
-
insert into groups (group_id, group_name) values (1,'school');
|
54
|
+
insert into groups (group_id, group_name,id) values (1,'school',1,);
|
55
|
+
insert into groups (group_id, group_name,id) values (2,'school',3,);
|
56
|
-
insert into groups (group_id, group_name) values (
|
56
|
+
insert into groups (group_id, group_name,id) values (3,'bestfried',2,);
|
57
|
-
insert into groups (group_id, group_name) values (
|
57
|
+
insert into groups (group_id, group_name,id) values (4,'teamA',2,);
|
58
58
|
|
59
59
|
create table schools (
|
60
60
|
school_id int primary key,
|
61
|
+
school_message_content text,
|
61
62
|
id int,
|
62
|
-
foreign key (id) references users(id)
|
63
|
+
foreign key (id) references users(id)
|
63
|
-
group_id int,
|
64
|
-
foreign key (group_id) references groups (group_id)
|
65
64
|
);
|
66
65
|
|
67
|
-
insert into schools (school_id,
|
66
|
+
insert into schools (school_id, school_message_content) values (1, 'aaa');
|
68
|
-
insert into schools (school_id,
|
67
|
+
insert into schools (school_id, school_message_content) values (2, 'bbb');
|
69
|
-
insert into schools (school_id,
|
68
|
+
insert into schools (school_id, school_message_content) values (3, 'ccc');
|
70
69
|
|
71
70
|
create table messages(
|
72
71
|
message_id int,
|
@@ -82,6 +81,7 @@
|
|
82
81
|
insert into messages (message_id, message_content) values (1, 'hoge?');
|
83
82
|
insert into messages (message_id, message_content) values (2, 'hoge!!!');
|
84
83
|
insert into messages (message_id, message_content) values (3, 'hoge');
|
84
|
+
insert into messages (message_id, message_content) values (4, 'honcon');
|
85
85
|
```
|
86
86
|
|
87
87
|
以下の命令を実行するMysql文を出力しました。
|
@@ -93,16 +93,41 @@
|
|
93
93
|
=============
|
94
94
|
|
95
95
|
```lang-sql
|
96
|
-
(1)select messages.message_content from users
|
97
|
-
inner join messages on users.id = messages.message_id
|
98
|
-
inner join groups on users.id = groups.group_id
|
99
|
-
inner join schools on schools.school_id = schools.school_id
|
100
|
-
where groups.group_id = 1;
|
101
|
-
(2)不明
|
102
|
-
(3)不明
|
103
|
-
(
|
96
|
+
(1)select messages.message_content from messages
|
97
|
+
inner join users on messages.message_id = users.id
|
98
|
+
inner join friends on messages.message_id = friends.friend_id
|
99
|
+
where users.id = 1 and users.id = 2;
|
100
|
+
|
101
|
+
(2)select users.name from users
|
102
|
+
inner join groups on users.id = groups.id
|
103
|
+
where group_name = 'school';
|
104
|
+
|
105
|
+
(3)select schools.school_message_content from schools;
|
106
|
+
|
104
|
-
where messages.message_content
|
107
|
+
(4)where messages.message_content like '%hoge%';
|
105
108
|
```
|
106
109
|
|
107
110
|
|
111
|
+
自分で把握している疑問点は一つあります。
|
112
|
+
上記のsql文で、グループラインのテーブル(shools)のメッセージ履歴を書いたのですが、
|
113
|
+
|
114
|
+
```lang-sql
|
115
|
+
(3)select schools.school_message_content from schools;
|
116
|
+
```
|
117
|
+
|
118
|
+
下記のように、グループラインごとにテーブルをひとつずつ作成していたら膨大なテーブル数に成ってしまいますよね。
|
119
|
+
|
120
|
+
```sql
|
121
|
+
create table schools (
|
122
|
+
school_id int primary key,
|
123
|
+
school_message_content text,
|
124
|
+
id int,
|
125
|
+
foreign key (id) references users(id)
|
126
|
+
);
|
127
|
+
|
128
|
+
insert into schools (school_id, school_message_content) values (1, 'aaa');
|
129
|
+
insert into schools (school_id, school_message_content) values (2, 'bbb');
|
130
|
+
insert into schools (school_id, school_message_content) values (3, 'ccc');
|
131
|
+
```
|
132
|
+
|
108
|
-
|
133
|
+
グループテーブルの中に、グループラインそれぞれの履歴を格納したいのですが、どのように記入してあげればいいのかが分かりません。
|