MySQL+ PHPについて質問です。
商品リスト(テーブルA)から、商品名で関連付けられたユーザー評価(テーブルB)があったとします。
ユーザーが商品ページから評価を5段階でを入れれるようにしました。
商品一覧のページで商品リスト(テーブルA)を表示させ
さらにユーザー評価の平均を一緒にテーブルAの商品名から関連付けるように表示させたいのですが、どうやったらいいのでしょうか。
イメージは下記の通りです。
---------------------------------------------------------------
商品名(テーブルA) ∥ 商品説明(テーブルA) ∥ 商品ランク(テーブルB)
---------------------------------------------------------------
オレンジ | おいしい | 評価5
---------------------------------------------------------------
りんご | おいしい | 評価4
---------------------------------------------------------------
試したSQL文は以下の通りです。
"SELECT title, avg(rank) as avgrank FROM テーブルB group by title
join
テーブルA
テーブルA .title = テーブルB.title";
残念ながらエラーなのですが、正しくはどう書くのでしょうか。
単純にユーザーが1人であればそのまま結合できるのですが、同じタイトルのものの評価を平均しないといけないため、頭がおかしくなりそうです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
一度VIEWを作る(createする)のがとりあえず簡単だと思います。
create view viewB as
select title, avg(rank) as avgrank FROM テーブルB group by title;
viewBを作ったあとなら、いつでも下の文で結果が取れます。
select * from テーブルA
inner join viewB
on テーブルA .title = viewB.title
;
inner joinをleft outer joinに変えるとランクなしの商品も出るようになります。
joinしているviewBをインラインビューに変換すればあなたが試したSQL文に近い実現方法にもなります。create viewは要らなくなります。
No.2
- 回答日時:
>MySQLのバージョンが4.0なんですが可能でしょうか?
MySQLの質問をする場合は、バージョンを明記してください。
MySQL 4.0以前・・・union、一部のjoin、一時表などは実装済
MySQL 4.1・・・joinの拡張、サブクエリ、インラインビュー、unicodeなどの実装
MySQL 5.0・・・ビュー表、ストアドプロシジャ、トリガなどの実装
と、すぐに思い出せるだけでも、大きな機能拡張がたくさんあります。
各表の構成列、データ型、表と表は1:1か1:nかなどの情報を、できれば提示してください。そうすることで、無駄なやり取りを少なくでき、早く適切なアドバイスを得られるかも知れません。
次にSQL例を示します。
SELECT A.商品名,A.商品説明,avg(商品ランク) as avgrank
FROM A
LEFT JOIN B
ON A.商品名=B.商品名
GROUP BY A.商品名,A.商品説明
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- SQL Server SQLのクエリの書き方 1 2022/03/29 23:06
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) accessについて 2 2022/05/31 16:58
- 簿記検定・漢字検定・秘書検定 簿記2級 売上原価の計算と期末商品の評価に関する質問 3 2023/06/24 23:50
- その他(悩み相談・人生相談) 妹が、メルカリで売れた商品を、リビングのテーブルで梱包していました。 その日のお昼過ぎに、私はそのテ 5 2023/08/18 20:54
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- 楽天市場 商品、サービスの「評価サイト」を作る予定なのですが、この分野はやめた方が良いの理由を述べれる方。 3 2023/01/31 00:37
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今度同じサークルだった女の子...
-
このテーブルで
-
会社の飲み会の幹事になり、座...
-
まるいテーブル 円い 丸い 漢字...
-
外部キーだけのテーブル(主キ...
-
特定物と不代替物の違い
-
DBの容量について
-
面接のときテーブルが正面に。...
-
男性と2人で飲食店に行きテーブ...
-
お金持ちのテーブル
-
Access 振込手数料計算
-
飲み会で、座敷orテーブルどち...
-
風水で丸いテーブルはあまりよ...
-
オーダーの覚え方について
-
ファイルメーカー起動時の設定
-
人の前を通る場合について
-
クエリを教えてください select...
-
SQL 外部結合
-
L2SWはARPテーブルを持っている?
-
ACCESSで3ファイルを結合して、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
論理名とコメント構文(?)について
-
1つのテーブルに同じデータを参...
-
1対1のリレーション(主キー同...
-
MySQLで複数テーブルを作成する
-
テーブルの白く剥がれてるところに
-
オーダーの覚え方について
-
このテーブルで
おすすめ情報