gpt4 book ai didi

mysql - 删除基于其他表的结果

转载 作者:行者123 更新时间:2023-11-29 02:20:54 25 4
gpt4 key购买 nike

我目前有一个查询,显示我的游戏中收入最高的用户。

$q = mysqli_query($link, "SELECT `money`, `name`, `id` FROM `users` WHERE `money` > 0 ORDER BY `money` DESC LIMIT 10");
$r = 1;
while($row = mysqli_fetch_assoc($q)) {
//Code here.
++$r;
}

其中 $r 是用户的排名(从 1-10)。

我想做的是过滤掉目前在游戏中被禁止的用户。 users 表中没有关于用户是否被禁止的列,但有一个单独的 bans 表,如下所示:

bans
`id` INT(11) PRIMARY AUTO-INCREMENT
`user` INT(11)
`reason` TEXT
`length` INT(11)

bans 表中的 user 值与 users 表中的 id 值完全相同.

如果用户存在于 bans 表中,我将尝试从第一个查询中过滤掉所有用户。

最佳答案

您可以使用不存在查询,例如:

SELECT `money`, `name`, `id` 
FROM `users` u
WHERE `money` > 0
AND NOT EXISTS (SELECT 1 FROM Bans b WHERE b.user = u.id)
ORDER BY `money` DESC
LIMIT 10

这将从我认为您想要的结果中删除被禁止的用户 - 如果是相反的方式,只需删除 not

关于mysql - 删除基于其他表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027744/

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