質問編集履歴

4

SQL

2019/02/22 11:35

投稿

nepia
nepia

スコア30

test CHANGED
File without changes
test CHANGED
@@ -39,6 +39,56 @@
39
39
  |2|2|
40
40
 
41
41
  |3|3|
42
+
43
+
44
+
45
+ 以下クエリ文
46
+
47
+ create table POST_CATEGORY(
48
+
49
+ POST_ID INT not null
50
+
51
+ , CATEGORY_ID INT not null);
52
+
53
+
54
+
55
+ create table POST(
56
+
57
+ ID INT not null
58
+
59
+ , TITLE VARCHAR (100)
60
+
61
+ , constraint POST_PKC primary key (ID)
62
+
63
+ );
64
+
65
+
66
+
67
+ INSERT
68
+
69
+ INTO POST(ID, TITLE)
70
+
71
+ VALUES (1, '記事1')
72
+
73
+ , (2, '記事2')
74
+
75
+ , (3, '記事3');
76
+
77
+
78
+
79
+ INSERT
80
+
81
+ INTO POST_CATEGORY(POST_ID, CATEGORY_ID)
82
+
83
+ VALUES (1, 1)
84
+
85
+ , (1, 2)
86
+
87
+ , (1, 3)
88
+
89
+ , (2, 2)
90
+
91
+ , (3, 3);
42
92
 
43
93
 
44
94
 

3

要件修正

2019/02/22 11:35

投稿

nepia
nepia

スコア30

test CHANGED
File without changes
test CHANGED
@@ -49,6 +49,16 @@
49
49
  記事検索画面で、カテゴリーを複数選択できるチェックボックスを配置して検索した場合に、
50
50
 
51
51
  選択したカテゴリーのみが紐づく、検索結果を取得したいです。
52
+
53
+
54
+
55
+ 条件
56
+
57
+ ①記事に紐づくカテゴリー総数
58
+
59
+ ②検索条件で選択されたカテゴリーと紐づく「POST_CATEGORY」の「POST_ID」毎の総数
60
+
61
+ ①と②が一致することが条件となります。
52
62
 
53
63
 
54
64
 

2

例で表示したデータ修正

2019/02/22 09:56

投稿

nepia
nepia

スコア30

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  |1|3|
38
38
 
39
- |2|1|
39
+ |2|2|
40
40
 
41
41
  |3|3|
42
42
 

1

Modelについて記載させて頂きました

2019/02/22 09:55

投稿

nepia
nepia

スコア30

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,55 @@
63
63
 
64
64
 
65
65
  上記の様な実装を行いたい場合は、EloqentのBuilderではどのように指定すればよろしいのでしょうか。
66
+
67
+
68
+
69
+ ```PHP
70
+
71
+ class Post extends Model{
72
+
73
+
74
+
75
+ protected $table = "POST";
76
+
77
+
78
+
79
+ protected $primaryKey = "ID";
80
+
81
+
82
+
83
+ public $incrementing = false;
84
+
85
+
86
+
87
+ public function categories(){
88
+
89
+ return $this->hasMany(PostCategory::class, "POST_ID");
90
+
91
+ }
92
+
93
+
94
+
95
+ }
96
+
97
+
98
+
99
+ class PostCategory extends Model{
100
+
101
+
102
+
103
+ protected $table = "POST_CATEGORY";
104
+
105
+
106
+
107
+ protected $primaryKey = "ID";
108
+
109
+
110
+
111
+ public $incrementing = false;
112
+
113
+
114
+
115
+ }
116
+
117
+ ```