gpt4 book ai didi

MySql 查询 - 查找数据库中缺少的内容

转载 作者:可可西里 更新时间:2023-11-01 08:55:09 25 4
gpt4 key购买 nike

我在想出一个查询来确定我的 mysql 数据库中缺少哪些记录时遇到了问题。

我不知道如何循环查找结构化列表中缺少的内容。

我有一个数据库用作我玩的在线游戏的位置 map ,字段结构如下:

地区 |省份 |城市 |玩家信息

地区/省/市均为数值。地区值为 1-30,省份值为 1-500。这些是固定的。我的数据库是列出玩家可能拥有的所有城市。一个给定的省最多可以有 20 个城市,或者没有。当一个省中没有城市时,我会在数据库中创建一条包含空白城市和玩家信息值的记录。

例如:

R | P | C | PI
1 | 1 | 3 | Name1
1 | 1 | 7 | Name2
1 | 2 | 4 | Name3
1 | 3 | |
1 | 4 | 1 | Name2
1 | 4 | 4 | Name4
1 | 6 | 3 | Name5
etc

我想做的是找到缺少的区域/省组合。在这里的示例数据中,我想知道 R:1 P:5。

有没有办法做到这一点?让我知道是否可以提供更多信息

最佳答案

假设您有 2 个表(省和地区),其中包含有关省和地区的数据(如果没有,则很容易仅使用问题中所述的数值来创建它们):

SELECT comb.reg AS R,comb.pro AS P FROM
your_table_above t
RIGHT JOIN
(
SELECT region.id AS reg, province.id AS pro
FROM region
JOIN province
ORDER BY region.id
) AS comb
ON t.R = comb.reg AND t.P = comb.pro
WHERE t.R IS NULL AND t.P IS NULL

此查询应该返回所有不在您上面绘制的表格中的组合。

编辑

下面是评论后查询的样子:

SELECT comb.reg AS R,comb.pro AS P FROM
loc_table t
RIGHT JOIN
(
SELECT region.id AS reg, province.id AS pro
FROM region
JOIN province
ORDER BY region.id
) AS comb
ON t.Region = comb.reg AND t.Province = comb.pro
WHERE t.Region IS NULL AND t.Province IS NULL

关于MySql 查询 - 查找数据库中缺少的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049599/

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