我有这个很长的查询可以正常工作。我需要向boolean
它添加一个元素。
编辑:查询已更新。下面反映答案。新问题:对于每个项目,它现在为每个评级显示一行。例如,如果有 4 个人评价它,如果我是评价者之一,它将显示一行 isMatched = 1;其他三个将是 isMatched = 0。如果有两个老鼠,而我都不是,isMatched 显示 0 两次。
$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};");
我想为此添加一个更多功能。这是一个基于用户的系统,一些用户会在名为 的表中对项目进行评分ratings
。表中的每个评级也会有一个user_id
匹配item_id
每行中的评级的人。WHERE
在上面未显示的 PHP 代码中,我将与我的子句 的 user_id 进行比较。
我只是想在boolean
这个查询中添加某种类型,它会在其中创建一个新列来显示user_id
当前登录用户是否与真/假匹配。
最终,我以 JSON 格式将其打印出来,并推送到 Java 以获取 Android 应用程序。在应用程序中,istView
如果 SQL 查询找到任何“真”匹配项,我希望 中的任何项目都显示为“粗体”。最后一点与SQL无关,我只是想解释一下应用程序。
这个查询可以这样修改吗?