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

标签 php mysql

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

  • “users”:uid、用户名、密码等
  • “groups”:gid、group_name、已创建等
  • “社区”: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 子句?如果是这样,我该怎么办?

最佳答案

您可以使用像此 sql fiddle http://sqlfiddle.com/#!2/bd596/4/0 这样的外连接

那么任何具有 null uid 的东西都不是其成员

关于php - 如何在 mysql 查询列表中包含条件列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544895/

相关文章:

mysql - 如何将数据表绑定(bind)到 reportviewer 运行时

php - 如何从 MXML 应用程序中的数据库获取值?

javascript - 将数组转换为 JSON 以检查值

php - 如何在 PHP 中实现事件驱动代码?

PHP 和 MySQL 输出问题

php - Eloquent 模型中 id 周围的引号在生产站点上是必需的,但在本地主机上不起作用

php - 需要帮助设计 HTTP POST 参数方案 - Android 到 PHP

mysql - 用另一列中的子字符串数填充列

mysql - 删除此 MYSQL 联合查询的重复项

mysql_query 获取 WordPress 数据库中的更新日期