Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在单个表中用于选择硬逻辑查询的SQL构造_Sql_Select_Records_Repeat - Fatal编程技术网

在单个表中用于选择硬逻辑查询的SQL构造

在单个表中用于选择硬逻辑查询的SQL构造,sql,select,records,repeat,Sql,Select,Records,Repeat,让我们假设我有一个这样的简单表: id-记录id 字符id-字符id level_id-level id,可用于字符 这是一个内容示例: 01 1 2 id为1的角色可以访问级别1和级别2是什么意思。 如果我想得到,我需要使用哪些关键字或结构: 可以访问任意两个级别的字符的字符id? 只有一级权限而没有其他权限的用户的字符id? 谁有相同的可用级别?谁有相同的可用级别? 谁有不同级别的可用人员的姓名? 这让我很震惊。。。有人能推荐点什么吗?我建议您仔细阅读SQL子句,这应该会让您有所收获。对

让我们假设我有一个这样的简单表:
id-记录id
字符id-字符id
level_id-level id,可用于字符

这是一个内容示例:
01
1 2
id为1的角色可以访问级别1和级别2是什么意思。

如果我想得到,我需要使用哪些关键字或结构:
可以访问任意两个级别的字符的字符id?
只有一级权限而没有其他权限的用户的字符id?
谁有相同的可用级别?谁有相同的可用级别?
谁有不同级别的可用人员的姓名?


这让我很震惊。。。有人能推荐点什么吗?

我建议您仔细阅读SQL子句,这应该会让您有所收获。

对于前两个选项,请使用
HAVING

-- To check for access to levels 1 and 2
SELECT char_id
FROM MyTable
WHERE level_id IN (1,2)
GROUP BY Char_Id
HAVING COUNT(*) = 2

-- to check for access to only one (unspecified) level
SELECT char_id
FROM MyTable
GROUP BY Char_ID
HAVING COUNT(*) = 1
另外两个选项需要进一步阐述

您是否只希望不同字符ID之间完全匹配?在中,这两个字符都可以访问完全相同的级别列表


一旦你确定了你到底想要什么,最后一个选项将与上述相反。

不,我只是想了解这些事情。我从来都不需要完整的解决方案,只需要一个关键字就可以了me@Kosmos:在您的示例中,两条记录的记录id均为0。感谢Mark Bannister,我错过了它:第一个示例为Pthanks!关于最后两件事。是的,如果你能了解一些字符就好了,这些字符可以访问完全相同的级别列表。