私はcodeigniterを使用しています。私は3つの異なるテーブルを呼び出して1つの配列に結合しようとしています。MySQLは3つのテーブルとフォーマットを結合します
$this->db->select('so_alcohol.id,
so_alcohol.name as name,
so_alcohol.category as category,
so_alcohol.permName as permName,
so_alcohol.picture as alcoholPicture,
group_concat(so_user.firstName) as firstName,
group_concat(so_user.lastName) as lastName,
group_concat(so_user.picture) as userPicture,
group_concat(so_rating.idUser) as idUser,
group_concat(so_rating.overall) as overall,
group_concat(so_rating.description) as description');
$this->db->from('alcohol');
$this->db->order_by("id", "desc");
$this->db->join('so_rating', 'so_rating.idAlcohol = so_alcohol.id', 'LEFT');
$this->db->join('so_user', 'so_user.id = so_rating.idUser', 'LEFT');
$query = $this->db->get();
私は希望の出力は以下の通りです:これは私が持っているものである
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Product Name
[category] => Product category
[permName] => Product-Name
[alcoholPicture] => http://image.com/1.jpg
[idUser] => 1,2,3
[overall] => 100,80,50
[description] => Review 1,Awesome review 2, Horrible review 3
[firstName] => name 1, name 2, name 3
[lastName] => last 1, last 2, last 3
[userPicture] => http://userimage.com/1.jpg, http://userimage.com/2.jpg, http://userimage.com/3.jpg
)
[0] => stdClass Object
(
[id] => 1
[name] => Product Name
[category] => Product category
[permName] => Product-Name
[alcoholPicture] => http://image.com/1.jpg
[idUser] => 1,2,3
[overall] => 100,80,50
[description] => Review 1,Awesome review 2, Horrible review 3
[firstName] => name 1, name 2, name 3
[lastName] => last 1, last 2, last 3
[userPicture] => http://userimage.com/1.jpg, http://userimage.com/2.jpg, http://userimage.com/3.jpg
)
)
私の質問私は今、二つの問題は、(そのIがあり、私は仕事を持っているものを作るのですかどのようです見つけました)最初に1つの結果しか出力しませんでした。私は40を出力する必要があります.2番目の私はso_user.id = so_rating.idUser
のため、私はすでにgroup_concat(so_rating.idUser)
のアイデアを持っていませんか?私はまだPHPの初心者であるようにこれが正しい方法であるかどうかはわかりません。
EDIT:
アルコール
id name category permName picture
1 Product #1 1 Product-1 http://someurl.com/1.jpg
2 Product #2 1 Product-2 http://someurl.com/2.jpg
3 Product #3 1 Product-2 http://someurl.com/3.jpg
4 Product #4 2 Product-2 http://someurl.com/4.jpg
評価
id idUser idProduct overall description
1 1 2 100 Great Product Review 1
2 2 2 75 Great Product Review 2
3 1 3 100 Great Product Review 3
4 2 3 98 Great Product Review 4
ユーザー
id firstName lastName userPicture
1 first 1 last 1 http://someurlUserPicture.com/1.jpg
2 first 2 last 2 http://someurlUserPicture.com/2.jpg
3 first 3 last 3 http://someurlUserPicture.com/3.jpg
4 first 4 last 4 http://someurlUserPicture.com/4.jpg
私は表の回路図を載せています。機能別にどのグループが何をしているのか分かりません....私はまだphp/msqlで本当に緑色です。私が望むべきことを学ぶためのサイトを作ることが私の希望です。 2番目の部分は、私が以前に 'GROUP_CONCAT'していたので、私は' so_user.id = so_rating.idUser'をやっていないとMysqlがいつもエラーを出しています。あなたは私がテーブルスケマティックを立てた今、これにどのように取り組むかの例を私に見せてもらえますか? – Jacinto
エラーメッセージをコピーできますか? – Basti
私はばかです、私は最後には入れませんでした。 2番目の部分はうまくいきますが、まだ1つのアルコール、1つのレビュー、1人のユーザーしかいません。私は40のアルコール、5人のレビューと5人のユーザーを取得したい – Jacinto