Представьте себе, у меня есть несколько продуктов, у каждого продукта есть раздел обзора, и если кто-то оставляет хороший отзыв, его отзыв напоминает, что другие пользователи сочли его полезным.
У меня есть таблицас именем CustomerReview и другой таблицей с именем likeReview, и внутри этой таблицы (likeReview) у меня есть столбец:
isLike (значения true, false или null)
Мне нужно, чтобы эта таблица поднималаСамые полезные отзывы в верхней части списка.
Как мне поступить?
Я получаю ошибку, когда My 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 } ;
my items.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>