SQL独特的问题

时间:2011-07-18 09:12:41

标签: mysql sql distinct

所以我很累,但为什么DISTINCT不在这里工作:

      SELECT DISTINCT Review.user_id, Review.id, User.*, Account.* 
      FROM reviews As Review 
      INNER JOIN users AS User ON Review.user_id = User.id 
      LEFT JOIN accounts AS Account ON User.id = Account.user_id 

2 个答案:

答案 0 :(得分:5)

由于Unique仅适用于完全相同的结果。但是在这里你也包括ID,这对于每一行都是唯一的,使每条记录都是唯一的。所以结果显示了所有记录。

答案 1 :(得分:1)

如果您只想要唯一的user_id,请尝试使用GROUP'ing。但这将截断结果中所有其他连接的记录。因此,您最好考虑使用user_id选择什么,以及不选择什么。

  SELECT DISTINCT Review.user_id, Review.id, User.*, Account.* 
  FROM reviews As Review 
  INNER JOIN users AS User ON Review.user_id = User.id 
  LEFT JOIN accounts AS Account ON User.id = Account.user_id 
  GROUP BY Review.user_id