php - Mysql查询理解

标签 php mysql

我有一个关于如何查询此信息的快速问题

假设在我的数据库中我有以下主题

Welcome Center    Group 1
Members Questions Group 2
Admin Ops         Group 3

和一个用户表

User 1      Group 1
User 2      Group 2
User 3      Group 3

和一组表

1     Register User  
2     Member 
3     Admin   

好吧,这就像一个数据库,现在假设我只想注册一个组 1 的用户来查看组 1 的项目。

"SELECT * FROM topic WHERE group = 1"

所以他们看不到成员(member)和管理员的内容。

这就是问题开始的地方。

我需要在哪里找到一个查询,或者了解我们允许成员(member)查看注册用户主题和成员(member)主题。

"SELECT * FROM topic WHERE group = 1 AND group = 2"

正如您所见,这是一个示例,但不确定这是否是我需要做的。

与管理员相同,我需要他们能够查看注册用户主题、成员主题和管理主题。所以三个都是。

"SELECT * FROM topic WHERE group = 1 AND group = 2 AND group = 3"

正如你所看到的,在我浪费时间编写一些不会像这样的东西之前,我并不是百分百确定这会起作用,但查询是我有点卡住的地方。

最佳答案

如果您希望所有主题都具有两个组,请使用聚合和 having 子句:

SELECT t.topic
FROM topic t
GROUP BY t.topic
HAVING SUM(group = 1) > 0 AND
       SUM(group = 2) > 0;

请注意,group 对于列来说是一个不好的名称,因为它是保留字。

关于php - Mysql查询理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27072390/

相关文章:

mysql - 这个 INSERT 配置文件可以与我的面向 Mysql InnoDB 的数据库一起使用吗?

mysql - 在更大的模式上奇怪更好的 mysql 查询性能

mysql - 在 Scrapy 中将项目写入 MySQL 数据库

mysql - sql : how to convert values in row to a variable with a prefix and suffix

php - 作为新手,我应该从哪个版本的 PHP 开始学习?

php - CREATE TABLE 和 INSERT,相同的查询

php - 我可以在 1 个 php 文件中包含多个 SQL SELECT 查询吗?

php - PDO::query() 运行到 "Cannot execute queries while other unbuffered queries are active."

javascript - 使用 $.post 请求 jQuery 对外部 PHP 进行 406 响应

java - 如何使用三个表编写这个复杂的 MySQL 查询?