gpt4 book ai didi

java - 如何将最有帮助的评论推到顶部?

转载 作者:行者123 更新时间:2023-11-30 10:03:55 25 4
gpt4 key购买 nike

想象一下,我有一堆产品,每个产品都有一个评论部分,如果有人发表了好评,他们的评论就会得到一个赞,以告知其他用户认为它有帮助。

我有一个名为 CustomerReview 的表和另一个名为 likeReview 的表,在这个表中 (likeReview) 我有一列:

isLike(值为真、假或空)

我需要让这张表将最有帮助的评论挤到列表的顶部。

我应该怎么做?

我的 SQL 尝试让 isLike 执行此操作时出现错误,因为有些评论 (CustomerReview) 与 likeReview 表无关。

SELECT {c.pk} 
FROM{ CustomerReview as c LEFT JOIN LikeReview as l ON {c.pk} = {l.pk} }
WHERE {c.product}=?product
AND {c.LANGUAGE}=?language
ORDER BY {l.ISLIKE } ;

我的项目.xml

        <relation code="Review2User" localized="false"
generate="true" autocreate="true">
<sourceElement qualifier="likeReview" type="LikeReview"
cardinality="many" >
</sourceElement>
<targetElement qualifier="customerReview" type="CustomerReview"
cardinality="one">
</targetElement>
</relation>

关系

        <typegroup name="LikeReview">
<itemtype code="LikeReview" autocreate="true" generate="true">
<deployment table="likeReview" typecode="15088"/>

<attributes>
<attribute type="Customer" qualifier="customer" >
<modifiers optional="false" unique="true"/>
<persistence type="property"/>
</attribute>
<attribute type="CustomerReview" qualifier="review" >
<modifiers optional="false" unique="true"/>
<persistence type="property"/>
</attribute>
<attribute qualifier="isLike" type="java.lang.Boolean">
<defaultvalue>Boolean.FALSE</defaultvalue>
<persistence type="property"/>
</attribute>
</attributes>
</itemtype>
</typegroup>

最佳答案

我认为您需要聚合。像这样:

SELECT {c.pk}
FROM { CustomerReview c LEFT JOIN
LikeReview l
ON {c.pk +"} = {l.pk} }
WHERE {c.product} = ?product AND
{c.LANGUAGE +} = ?language
GROUP BY {c.pk}
ORDER BY SUM(CASE WHEN {l.ISLIKE } = "true" THEN 1 ELSE 0 END) DESC

关于java - 如何将最有帮助的评论推到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56159500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com