MySQL:如何使用连接排除重复项?

时间:2009-12-03 01:53:57

标签: mysql

我正在尝试选择属于某个组的所有用户。我的group_members表会跟踪用户所属的组。

group_members ( group_id , user_id )

因此,在我的group_members表格中,user_id可能会多次出现,因为用户可以属于多个群组。我正在使用innerJoin()来提取每个user_id的用户信息。但是,我只想在检索用户名时显示一次。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

使用DISTINCT。之一:

select distinct u.* from users u
  join group_members gm on gm.user_id = u.user_id
 where ...

select * from users u
 where u.user_id in (select user_id from group_members where ...)
   ...

在两个查询上运行“EXPLAIN SELECT”,以查看哪一个更快。