选择不在另一个选择中的位置

时间:2018-06-01 09:41:40

标签: mysql sql phpmyadmin

我想

rxjs

但它没有返回任何东西,我认为应该是因为我跑的时候:

SELECT * 
FROM `bus_user_perms` 
WHERE `Perm_id` NOT IN (SELECT `Perm_id` 
                        FROM `bus_user_perms` 
                        GROUP BY `Perm_username`, `Perm_BusArId`)

我得到870结果

当我跑

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`

我得到了931个结果。

基本上我试图让61个结果不在870

4 个答案:

答案 0 :(得分:3)

您要做的是根据用户名和busairid分组查找重复项。尝试以下查询来实现相同的目标。

private void Form1_Load(object sender, EventArgs e)
{
    exTreeView1.Nodes.Clear();
    exTreeView1.Nodes.AddRange(new TreeNode[] {
        new TreeNode("1", new TreeNode[] {
                new TreeNode("11", new TreeNode[]{
                    new TreeNode("111"),
                    new TreeNode("112"),
                }),
                new TreeNode("12", new TreeNode[]{
                    new TreeNode("121"),
                    new TreeNode("122"),
                    new TreeNode("123"),
                }),
        }),
        new TreeNode("2", new TreeNode[] {
                new TreeNode("21", new TreeNode[]{
                    new TreeNode("211"),
                    new TreeNode("212"),
                }),
                new TreeNode("22", new TreeNode[]{
                    new TreeNode("221"),
                    new TreeNode("222"),
                    new TreeNode("223"),
                }),
        })
    });
    exTreeView1.ExpandAll();
}

答案 1 :(得分:0)

结果集中只有870个不同的perm_id,其中包含931.尝试添加DISTINCT关键字。

答案 2 :(得分:0)

它不会返回任何内容,因为外部查询中的所有Perm_id都会在子查询中有一个条目

该表的结构是什么以及您要查询的是什么?

答案 3 :(得分:0)

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`

返回包含唯一Perm_idPerm_username的所有Perm_BusArId

SELECT `Perm_id` 
FROM `bus_user_perms`

返回其中的所有Perm_id

可能会在此表上允许重复的Perm_id s。所以跑步:

SELECT * 
FROM `bus_user_perms` 
WHERE `Perm_id` NOT IN (SELECT `Perm_id` 
                        FROM `bus_user_perms` 
                        GROUP BY `Perm_username`, `Perm_BusArId`)

什么都不会回报。要运行重复数据:

SELECT `Perm_id` 
FROM `bus_user_perms` 
GROUP BY `Perm_username`, `Perm_BusArId`
HAVING count(*) > 1