MS ACCESS:如何使用group by子句进行更新查询

时间:2015-12-03 21:11:24

标签: ms-access group-by sql-update

首先,对于任何不准确的概念感到抱歉,因为我的母语不是英语,我只能从我的大学访问ACCESS :)(现在我在家)。

我需要有关MS ACCESS计划的帮助。 在我的最小例子中有两个表:

  1. user有三列:idnickdisabled(真/假类型)
  2. warnings有两列:user_iddate
  3. 这两列之间还存在关联,id< - > user_id。 我想禁用所有有3个或更多警告的用户。

    我可以使用GROUP BY子句轻松创建一个查找所有此类用户的select查询:

    user.id / group by
    warnings.user_id / count / criterion: >=3 / not visible
    

    当我尝试将其更改为更新查询时,GROUP BY子句消失。我尝试通过将上面的选择查询保存为QUERY1来解决此问题,并创建另一个使用QUERY1的更新查询。 我需要这样的东西: 更新用户的所有行,以便ID在QUERY1 中。 我尝试在两个地方发表这样的声明:

    a)作为user。id行的标准:

      user.id / criterion: user.id belongs to QUERY1.
      user.disabled / set true
    

    b)作为附加行: b1)的

    user.id
    user.disabled / set true
    expression1: id belongs to QUERY1 / criterion: true
    

    或 b2)的

    user.id
    user.disabled / set true
    expression1: look for id in QUERY1 / criterion: not null
    

    在互联网上寻求帮助我找到了一些关于子查询的信息,但不幸的是我的尝试失败了。我还发现了一个函数 DLookup (我认为b2方法很有成效)。我想我不理解在ACCESS语法中使用方括号。

    对我来说重要的是,解决方案应该尽可能简单和“可点击”,因为我需要向一些完全初学者的人解释。

    感谢您从我那里获得的任何帮助。

1 个答案:

答案 0 :(得分:0)

如上面的评论中所述,'group by'在更新查询中没有任何意义。您需要做的是在更新查询中使用分组查询的结果。这意味着更新查询引用的单独分组查询,或者意味着更新中的分组子查询。我将展示后者,因为它更直接。我不完全确定'clickable'对你意味着什么,但是2查询方法应该很容易从带有子查询的示例中解决,如果你喜欢的话。 (子查询更加包含和简洁,但引入了可能是复杂的子查询的概念)

<?php

$query = "SELECT * FROM menu";
$select_all_categories_query = mysqli_query($connection, $query);

while ($row = mysqli_fetch_assoc($select_all_categories_query)) {
    $cat_id = $row['cat_id'];
    $cat_title = $row['cat_title'];
    echo "<li><a href='#'>$cat_title</a></li>";
}