0

私は 3 つのテーブルを持ってusers(name, email), reviews(review, entity, user) and votes(vote, entity, user)います。特定のエンティティに対して与えられたすべてのレビューを返すクエリを作成し、ユーザーがそのエンティティに投票した場合は投票テーブルから投票したいと考えています。私が書いたクエリは

select users.name as name, 
reviews.review as review, 
votes.vote as vote 
from 
users join reviews on users.email=reviews.user 
left join votes on users.email=votes.user 
where reviews.entity='entity_id'

しかし、このクエリはいくつかのレビューで複数の行を生成します.group byを使用して動作させました.by左結合の動作を理解できません.

4

1 に答える 1

1

特定のエンティティの投票に参加していません。次のことを試してください。

select users.name as name, 
reviews.review as review, 
votes.vote as vote 
from 
users join reviews on users.email=reviews.user 
left join votes on users.email=votes.user and reviews.entity = votes.entity
where reviews.entity='entity_id'
于 2012-07-28T15:32:22.627 に答える