gpt4 book ai didi

mysql - 从两个相似表中获取数据的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 03:43:58 25 4
gpt4 key购买 nike

我有两个表,我们称它们为 A 和 B。它们的列名相同。但是,B 是完全填充的,而 A 就像是吃了一半的苹果。他们有很多领域,但为了简单起见,我只打算使用一个。他们都有公司代码。

B 有重复项(因为人们不喜欢删除数据?)。所以,不幸的是,我不能轻易地在公司代码上将两者结合在一起,因为我得到这些重复。

我想要做的是,对于每个公司代码,只从 B 中取出一个不同的行。对于每个公司代码,我只想要具有最高索引(最后更新)的行。

然后,我想将这些行与 A 中相应的公司代码连接起来。但是,一个小问题是 A 有一些公司代码不在 B 中,而我需要在我的结果集中包含这些代码。 B 拥有大部分数据,因此我根据上面的匹配从 B 获取数据。当然,对于那些公司代码仅存在于 A 中的条目,某些字段的数据必须保持空白。

那么..我该怎么做?我有点想在 SQL 调用之外执行逻辑。但是,我调用的函数将结果集作为参数,然后生成一个文件从中。因此,我要么必须重写该函数,要么创建我自己的 resultSet 对象来放入我想要的数据(可能会变得非常难看)。

有什么想法吗?我正在使用 MySQL,但我觉得如果有人能给我一个高级解决方案,我应该能够将其转换为 MySQL。

最佳答案

select [column list]
from A
left join (
select [column list]
from B
join (company_code, max(index) maxindex
from B
group by company_code) maxcode
on b.company_code = maxcode.company_code
and b.index = maxcode.maxindex
) B_distinct
on A.company_code = B_distinct.company_code

关于mysql - 从两个相似表中获取数据的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100960/

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