- 締切済み
評価の平均について。★★★☆☆
このように 田中旅館 平均評価★★★★☆ さとう旅館 平均評価★★☆☆☆ みたいに1ページで多数のAVGを取得するにはどう記述したらよいですか?? 単に$queryを二個用意するんですか?? それともFROMでテーブルを二個選択するんですか??
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
SQLの基本ですね。 何度も指摘されているように最低限の知識は本を読んで得てくださいね。 ここはおしゃべりの場所じゃなくて「技術者向」というある程度 知識がある前提での質問場所なのだから 今回のケースだと、ざっくり以下のようにまとめられます。 //旅館テーブルの作成とデータ登録 create table ryokan(id int not null primary key,name varchar(30)); insert into ryokan (id,name) values(1,'田中旅館'),(2,'さとう旅館'); //評価テーブルの作成とデータ登録 create table hyoka(ryokan_id int ,hyoka int); insert into hyoka values(1,3),(1,4),(1,5),(2,1),(2,2),(2,3),(2,1); //結果表示 SELECT ryokan_id,r.name,avg(hyoka) as average FROM hyoka as h inner join ryokan as r on r.id=h.ryokan_id GROUP BY ryokan_id そうすると旅館ごとの評価が得られるので、それをプログラム側で 配列として得て表示すればいちいち旅館ごとにSQLを発行する必要はない