gpt4 book ai didi

mysql - 当没有主键时从mysql表中提取额外记录

转载 作者:行者123 更新时间:2023-11-30 00:57:28 25 4
gpt4 key购买 nike

我正在尝试查找 t1 中但不在 t2 中的所有记录。我知道 t1 中的记录比 t2 中的记录多,因为当我运行

select count(*) 
from t1;

select count(*)
from t2;

我分别获得 21,500 条记录和 21,000 条记录。但问题是这些表没有标准化,没有主键,因此我不能做这样的事情:

 SELECT id FROM t1 
where t1.id
not in (
SELECT t2.id
FROM t2
where t2.id is not null);

或者这个

SELECT t1.id, t2.id 
FROM t1
LEFT JOIN t2
ON t1.id = t2.id
where t2.id is null

由于两者都返回 null,因此 id 数字完全匹配,因此 id 的数量似乎完全相同。一定还有另一个字段不匹配。

更新

我最终这样做了:

select id, count(id) 
from t1
group by id;
select id, count(id)
from t2
group by id

它给出了相同数量的 claim 数量和出现的次数。我将其复制并粘贴到 Excel 中,然后从另一个计数中减去一个计数,并进行条件格式化以仅显示不为零的计数,这给了我在一个表中显示的所有 id 多于另一个表的 id。 (草率的解决方案,但它能够解决问题)。

最佳答案

你有两个问题。糟糕的数据库设计和不知何故的虚假数据被插入到您的表中。

我不知道如果没有索引这是否可行。

左外连接应该可以帮助您入门(查找语法)。

你最终应该得到类似的结果:

t1.id   t2.id
1 1
2 2
3 null
4 4

关于mysql - 当没有主键时从mysql表中提取额外记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20429782/

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