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

質問編集履歴

2

追記

2017/03/14 05:33

投稿

celeritas
celeritas

スコア11

title CHANGED
File without changes
body CHANGED
@@ -4,10 +4,18 @@
4
4
  events:イベントの情報を格納
5
5
  customers: イベントごとの参加者情報を格納
6
6
 
7
- events hasMany customersの関係で各イベントに対して複数の参加者が存在しcustomersテーブルにはeventsのidを格納するカラムがあります。
7
+ events hasMany customersの関係で各イベントに対して複数の参加者が存在しcustomersテーブルにはeventsのidを格納するカラム「event_id」があります。
8
8
 
9
9
  ###やりたいこと
10
10
  表題の通りqueryBuilderを使ってクエリを作成する際にhasMany関係にあるテーブルに対してsql関数を実行する方法を教えていただきたいです。
11
11
 
12
12
  例えば、
13
- eventsテーブルからqueryBuilderを使ってレコードを取り出す際に、eventsの全てのカラムに加えて、レコードに関連しているcustomersテーブルのレコード数をcount関数を使って取り出す場合や、関連しているレコードの特定のカラムをsum関数で合計するような場合です。
13
+ eventsテーブルからqueryBuilderを使ってレコードを取り出す際に、eventsの全てのカラムに加えて、レコードに関連しているcustomersテーブルのレコード数をcount関数を使って取り出す場合や、関連しているレコードの特定のカラムをsum関数で合計するような場合です。
14
+
15
+ 端的に言えば次のようなクエリを生成したいということです。
16
+
17
+ ```MySQL
18
+ SELECT *,
19
+ ( select COUNT(*) from `customers` where `customers`.`event_id` = `events`.`id` )
20
+ FROM `events`;
21
+ ```

1

文章の修正

2017/03/14 05:32

投稿

celeritas
celeritas

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,21 +1,13 @@
1
- ###前提・実現したいこと
1
+ ###前提
2
+ CakePHPでイベント管理システムを作るとして、データベースが次のような構成になっているとします。
2
3
 
4
+ events:イベントの情報を格納
3
- (例)PHP(CakePHP)で●●なシステム作っています。
5
+ customers: イベントごとの参加者情報格納
4
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
5
6
 
6
- ###発生して問題・エーメッセージ
7
+ events hasMany customersの関係で各イベントに対して複数の参加者が存在しcustomersテーブルにはeventsのidを格納すムがあります。
7
8
 
8
- ```
9
- エラーメッセージ
9
+ ###やりたいこと
10
- ```
10
+ 表題の通りqueryBuilderを使ってクエリを作成する際にhasMany関係にあるテーブルに対してsql関数を実行する方法を教えていただきたいです。
11
11
 
12
- ###該当のソースコード
13
- ```ここに言語を入力
14
- ここにご自身が実行したソースコードを書いてください
15
- ```
12
+ 例えば、
16
-
17
- ###試したこと
18
- 課題に対してアプローチしたことを記載してください
19
-
20
- ###補足情報(言語/FW/ツールジョンど)
13
+ eventsテからqueryBuilderを使ってレコードを取り出す際に、events全てのカラムに加えて、レコドに関連しているcustomersテーブルのレコード数をcount関数を使って取り出す場合や、関連しているレコードの特定のカラムをsum関数で合計するよう場合です。
21
- より詳細な情報