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

回答編集履歴

6

s

2016/07/20 13:58

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -6,7 +6,6 @@
6
6
  ceremoniesを基点としたい場合は
7
7
  select * from ceremonies INNER JOIN ceremonies ON ceremonies.id = categories.ceremony_id;
8
8
  とすることでいけるはずです。
9
- ちなみに勝手にceremonies.idはプライマリと仮定してます
10
9
 
11
10
  ちょっと個人的にinner joinはあまり使わないので怪しければ
12
11
  select * from ceremonies ce,categories ca WHERE ce.id = ca.ceremony_id;

5

追記

2016/07/20 13:58

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -6,6 +6,7 @@
6
6
  ceremoniesを基点としたい場合は
7
7
  select * from ceremonies INNER JOIN ceremonies ON ceremonies.id = categories.ceremony_id;
8
8
  とすることでいけるはずです。
9
+ ちなみに勝手にceremonies.idはプライマリと仮定してます
9
10
 
10
11
  ちょっと個人的にinner joinはあまり使わないので怪しければ
11
12
  select * from ceremonies ce,categories ca WHERE ce.id = ca.ceremony_id;

4

修正

2016/07/20 13:43

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -5,4 +5,8 @@
5
5
  select * from categoriesに近い結果になります。
6
6
  ceremoniesを基点としたい場合は
7
7
  select * from ceremonies INNER JOIN ceremonies ON ceremonies.id = categories.ceremony_id;
8
- とすることでいけるはずです。
8
+ とすることでいけるはずです。
9
+
10
+ ちょっと個人的にinner joinはあまり使わないので怪しければ
11
+ select * from ceremonies ce,categories ca WHERE ce.id = ca.ceremony_id;
12
+ で期待した結果が取得できると思います。

3

文法の修正

2016/07/20 12:49

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -1,5 +1,6 @@
1
- inner joinは=で結ぶ際、基をどちらを置くかで結果が変わります。
1
+ inner joinは=で結ぶ際、基本となるテーブルをどちらを置くかで結果が変わります。
2
+ その状態ではcategoriesテーブルを基点に
2
- その状態ではcategoriesテーブルのceremony_idに一致するceremoniesテーブルを検索してしまい
3
+ categoriesテーブルのceremony_idに一致するceremoniesテーブルを検索してしまい
3
4
  どちらかというと
4
5
  select * from categoriesに近い結果になります。
5
6
  ceremoniesを基点としたい場合は

2

修正

2016/07/20 12:46

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -1,7 +1,7 @@
1
- inner joinは=で結ぶ際、左右にどちらを置くかで結果が変わります。
1
+ inner joinは=で結ぶ際、基点をどちらを置くかで結果が変わります。
2
2
  その状態ではcategoriesテーブルのceremony_idに一致するceremoniesテーブルを検索してしまい
3
3
  どちらかというと
4
4
  select * from categoriesに近い結果になります。
5
5
  ceremoniesを基点としたい場合は
6
- select * from ceremonies INNER JOIN categories ON ceremonies.id = categories.ceremony_id;
6
+ select * from ceremonies INNER JOIN ceremonies ON ceremonies.id = categories.ceremony_id;
7
7
  とすることでいけるはずです。

1

追加修正

2016/07/20 12:44

投稿

damalnylpo
damalnylpo

スコア53

answer CHANGED
@@ -1,4 +1,7 @@
1
1
  inner joinは=で結ぶ際、左右にどちらを置くかで結果が変わります。
2
+ その状態ではcategoriesテーブルのceremony_idに一致するceremoniesテーブルを検索してしまい
3
+ どちらかというと
4
+ select * from categoriesに近い結果になります。
2
5
  ceremoniesを基点としたい場合は
3
6
  select * from ceremonies INNER JOIN categories ON ceremonies.id = categories.ceremony_id;
4
7
  とすることでいけるはずです。