gpt4 book ai didi

MYSQL select 基于selects

转载 作者:可可西里 更新时间:2023-11-01 08:37:28 24 4
gpt4 key购买 nike

您的帮助将不胜感激...如果我有下表和示例数据... myGroupTable


group_Id : user_Id
1 : 3
1 : 7
1 : 100
2 : 3
2 : 7
2 : 100
2 : 104
4 : 42
4 : 98
4 : 13

我想要一个 sql 语句...返回一个 group_Id,其中包含完全指定的 user_Id。例如...是否有一个 group_Id 具有 User_Id 的 3、7 和 100答案:group_id 1。请注意,我不希望它返回 group_Id 2,因为它的 user_Id 也为 104 ...亲切的问候 J

最佳答案

SELECT
group_Id,
SUM(
IF user_Id = 3 THEN 1
ELSEIF user_Id = 7 THEN 2
ELSEIF user_Id = 100 THEN 4
ELSE 8
) AS bits
FROM myGroupTable
GROUP BY group_Id
HAVING bits=7

这假设您不能为同一个 group_Id 设置重复的 user_Id,例如,这永远不会发生:

group     user
1 3
1 3

编辑:您可以通过以下方式构建查询:

<?php
$ids = array(3, 7, 100);
$power = 2;
$query = "
SELECT
group_Id,
SUM(
IF user_Id = " .$ids[0]. " THEN 1 ";
foreach ($id in $ids) {
$query .= " ELSEIF user_Id = $id THEN " . $power;
$power = $power * 2;
}
$query .= " ELSE $power
) AS bits
FROM myGroupTable
GROUP BY group_Id
HAVING bits = " . ($power - 1);

关于MYSQL select 基于selects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com