回答編集履歴

1

見直し

2020/01/31 02:08

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,5 @@
1
+ 質問の趣旨とズレますけど、
2
+
1
3
  resテーブルのidってなんのidですか?
2
4
 
3
5
  resテーブル内のユニークなidを保持するためなのか、それともboard.idと紐付けるためのidなのか。
@@ -39,3 +41,43 @@
39
41
  などとして連結します。
40
42
 
41
43
  こうすることで、res個別の削除はres.idを指定して簡単にできます。
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
51
+ FROM句とJOIN句で、テーブルの結合をON句に書かれた条件で行ったものに対して、
52
+
53
+ WHERE句の条件で絞り込みを行うものです。
54
+
55
+
56
+
57
+ 例えば
58
+
59
+ ```SQL
60
+
61
+ SELECT * FROM boards, res
62
+
63
+ WHERE boards.id = res.boards_id AND boards.id = ?
64
+
65
+ ORDER BY res.res_time;
66
+
67
+ ```
68
+
69
+ のようにも書けなくもないですが、
70
+
71
+ テーブルboardsとテーブルresの全行を総当りで結合させたものの中から、
72
+
73
+ WHERE boards.id = res.boards_id AND boards.id = ?
74
+
75
+ の条件で絞り込みを行うため、得られる結果は一見同じに見えますが、
76
+
77
+ 将来テーブルの行数が何千、何万、何十万同士を総当りで結合させる無駄な処理をした後に
78
+
79
+ 絞り込みを行うと、総当たりの無駄な処理+膨大な量からの無駄な絞り込みということになり、
80
+
81
+ そういう無駄を省くためにも、
82
+
83
+ FROM句にJOIN句をつないでテーブルの結合を効率良く行うのがセオリーです。