私は 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」=(ユーザーの評価) として添付されたユーザーの評価が必要です。