0

私は 2 つのテーブルを持っていproductsますratings

すべてを一覧表示したいのですがproducts、ユーザーが製品を評価した場合 (r.by は userId で、r.rating は評価です) userrating、SQL 応答に =r.rating else userrating=0 を追加します。

一人のユーザーでしか動作しないので、何が問題なのかわかりません。

    $sql = "SELECT DISTINCT p.id, p.rating, CASE WHEN r.by=:USER_ID
           THEN r.rating ELSE 0 END AS userrating FROM `products` p 
           LEFT OUTER JOIN `ratings` r
           ON r.productid=p.id 
           WHERE p.moderated=1
           order by p.rating desc";

編集:

すべての製品をリストする必要があり、ユーザーが製品を評価した場合は、「userrating」=(ユーザーの評価) として添付されたユーザーの評価が必要です。

4

1 に答える 1