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

質問編集履歴

1

追加

2015/11/06 14:45

投稿

Kei227
Kei227

スコア44

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 (2,'bestfried');
56
+ insert into groups (group_id, group_name,id) values (3,'bestfried',2,);
57
- insert into groups (group_id, group_name) values (3,'teamA');
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, id) values (1, 1);
66
+ insert into schools (school_id, school_message_content) values (1, 'aaa');
68
- insert into schools (school_id, id) values (2, 3);
67
+ insert into schools (school_id, school_message_content) values (2, 'bbb');
69
- insert into schools (school_id, id) values (3, 4);
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
- (4)select messages.message_content from messages
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 = '%hoge%';
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
+ グループテーブルの中にグループラインそぞれの履歴を格納したいですが、どのように記入てあげればいのかが分かりせん