我有一个这样的查询:
SELECT c.review, u.username, c.date, c.good, c.rate_id, r.rating
FROM comments AS c
LEFT JOIN users AS u
ON c.user_id = u.user_id
LEFT JOIN items as i
ON i.items_id = c.item_id
LEFT JOIN master_cat AS m
ON m.cat_id = i.cat_id
LEFT JOIN ratings as r
ON r.item_id = c.item_id
WHERE i.item = '{$item}' AND c.user_id = r.user_id
ORDER by {$sort};
但这是限制性的。因为如果 WHERE 语句 ( c.user_id = r.user_id
) 匹配,我将 JSON 打印出来c.rating
。如果没有,它会在我的应用程序中打印出来,它会跳过我需要的数据。
例如,如果它将评论与来自同一用户的评分相匹配,它将对数据进行配对。但有些评论还没有相关的评分(您可以从 1 到 5 评分)。因此,我不想使用不灵活的 WHERE 子句跳过数据,而是想使它有条件并打印出 0 ,稍后我可以说IF 0, print out "not rated"
。(这不会在 SQL 中完成,而是在 JAVA 中完成。在 SQL 中,我只需要在MySQL
数据库中存储 0。)
我假设我需要放弃WHERE
并成为SELECT
?