Mysql查询理解

时间:2014-11-21 23:58:58

标签: 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"

所以他们无法看到会员和管理员的内容。

这就是问题的开始。

我需要查找一个查询,或者了解我们允许该成员查看注册用户主题和成员主题。

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

正如你可以看到这个例子,不确定这是否是我需要做的。

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您想要包含两个组的所有主题,请使用聚合和having子句:

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

请注意,group是列的错误名称,因为它是保留字。