如何在mysql查询列表中包含条件列?

时间:2013-07-09 09:36:47

标签: php mysql

我有3个mysql表:* users"," groups"," community"。

  • "用户":uid,用户名,密码等
  • " groups":gid,group_name,created等
  • "社区":cid,uid(外国),gid(外国)

现在我想列出所有组的gid,groups_name,created等属性(动态)。没关系。但我还想添加一个列,显示特定用户是否是该组的成员。

像这样:(此表适用于特定用户,例如:uid = 4)

gid | group_name | created | ismember
1   | g1         | 2001    | true
2   | g2         | 2003    | true
3   | g3         | 2010    | false
...

重要的是,一组只展示一次。用户已登录,因此我们知道" uid"。

这是我的两个mysql片段:

//get groups with their uids shown.
SELECT groups.*, community.uid
FROM groups, community
WHERE groups.gid = community.gid;

//get user-joined groups
SELECT groups.*
FROM groups
WHERE gid IN (
  SELECT gid
  FROM community
  WHERE uid = " . $uid . "
);

有没有办法只用一个mysql查询来做到这一点?或者我必须以某种方式分离这两个请求并使用php if子句?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以使用像THIS sql http://sqlfiddle.com/#!2/bd596/4/0

这样的外连接

然后任何带有null uid的东西他们都不是

的成员