正常に機能するこの非常に長いクエリがあります。boolean
1つの要素を追加する必要があります。
編集:クエリが更新されました。以下の答えを反映しています。新しい問題:すべてのアイテムについて、各評価の行が表示されるようになりました。たとえば、4人が評価した場合、私が評価者の1人であれば、isMatched=1の1行が表示されます。他の3つはisMatched=0になります。2つのratnigがあり、私がどちらでもなかった場合、isMatchedは0を2回表示します。
$result=mysql_query("
SELECT i.item,
IF (ra.user_id = '{user}',1,0) AS isMatched,
r.ratetotal AS total,
c.commtotal AS comments,
r.rateav AS rate
FROM items AS i
LEFT JOIN master_cat AS c
ON (c.cat_id = i.cat_id)
LEFT JOIN ratings AS ra
ON (i.items_id = ra.item_id)
LEFT JOIN
(SELECT item_id,
COUNT(item_id) AS ratetotal,
AVG(rating) AS rateav
FROM ratings GROUP BY item_id) AS r
ON r.item_id = i.items_id
LEFT JOIN
(SELECT item_id,
COUNT(item_id) AS commtotal
FROM comments GROUP BY item_id) AS c
ON c.item_id = i.items_id
WHERE c.category = '{$cat}' AND i.spam < 30
{$order};");
これにもう1つ関数を追加したいと思います。これはユーザーベースのシステムであり、一部のユーザーはと呼ばれるテーブルのアイテムを評価しますratings
。表の各評価には、各行の評価user_id
者と一致するものもありitem_id
ます。WHERE
上記に示されていないPHPコードでは、句 のuser_idと比較することができます。
このクエリにある種のタイプを追加して、現在ログインしているユーザーがtrue/falseと一致する boolean
かどうかを示す新しい列を作成したいだけです。user_id
最終的に、私はこれをJSONで印刷し、Androidアプリ用にJavaにプッシュしています。istView
アプリでは、SQLクエリで「真の」一致が見つかった場合に、内のすべてのアイテムを「太字」で表示したいと思います。最後のポイントはSQLとは関係ありません。アプリケーションについて説明したいと思います。
このクエリはこのように変更できますか?