0

我有 3 个表users(name, email), reviews(review, entity, user) and votes(vote, entity, user),我想进行一个查询,该查询返回为特定实体提供的所有评论,如果用户投票支持该实体,则从 votes 表中投票,否则投票地点应为 null。我写的查询是

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 使它工作,我无法理解左连接的行为,

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 回答