gpt4 book ai didi

MySql - 将多个表连接到主表时出现重复列

转载 作者:行者123 更新时间:2023-11-29 23:27:02 30 4
gpt4 key购买 nike

背景
我收到了一堆如下所示的数据,宽度略多于 200 列:名称|地址|等...|值 1|值 2|代码 1|代码 2|代码重复 7 次|值 3|值重复 200 次...|值 200

它们包括用于破译编码值的定义列表,例如:U6 = 本地限制和 U7 = 超过 100 次

所以我将其加载到 mysql 中,因为他们想要将定义列表中的值交换为编码值的报告。然而,并非主表中的所有单元格都有数据,有些单元格是空白的。

问题
所以,当构建我的 select 语句时,我通常会使用左连接并且没问题,但是我需要多个左连接来在需要时交换 8 个定义列表,多个左连接给了我很多额外的字段,在这个。

主表被称为
RAW_数据

保存所有定义列表的表被命名为:
国家
起源
语言
偏好
HAS_VEHICLE
教育
婚姻状况
职业
科技码
类型
收入

上面这些表格只是有定义的表格。 225 表中的所有其他字段都是静态的并且通常是唯一的。我确信它可以标准化,但一次转换一份报告需要付出大量的努力。这就是为什么我只使用那些具有人类无法通过定义列表识别的代码的代码。

MY QUERY  

SELECT `raw_data`.`id_raw_data`,
`raw_data`.`id`,
`raw_data`.`first_name`,
`raw_data`.`last_name`,
`raw_data`.`OTHER_COLUMNS_AS_NEEDED`,
`country`.`longname` as `country`,
`origin`.`longname` as `origin`,
`language`.`longname` as `language`,
`preference`.`longname` as `preference`,
`has_vehicle`.`longname` as `vehichle_type`,
`education`.`longname` as `education`,
`marital_status`.`longname` as `marital_status`,
`occupation`.`longname` as `occupation`,
`techcode`.`longname` as `tech_group`,
`typestat`.`longname` as `typecode`,
`income`.`longname` as `income`,
FROM `raw_data`
left join `country`
on `raw_data`.`countrycode` = `country`.`shortname`
left join `origin`
on `raw_data`.`origincode` = `origin`.`shortname`
left join `language`
on `raw_data`.`languagecode` = `origin`.`language`
left join `preference`
on `raw_data`.`preferencecode` = `preference`.`shortname`
left join `has_vehicle`
on `raw_data`.`has_vehiclecode` = `has_vehicle`.`shortname`
left join `education`
on `raw_data`.`educationcode` = `education`.`shortname`
left join `marital_status`
on `raw_data`.`marital_statuscode` = `marital_status`.`shortname`
left join `occupation`
on `raw_data`.`occupationcode` = `occupation`.`shortname`
left join `techcode`
on `raw_data`.`techcodecode` = `techcode`.`shortname`
left join `typecode`
on `raw_data`.`typestatcode` = `typestat`.`shortname`
left join `income`
on `raw_data`.`incomecode` = `income`.`shortname`

我做了一些搜索,似乎都使用某种形式的子查询或涉及连接回自身的问题。我很确定这与大量 raw_data 表中没有值的列有关,因此没有匹配项,但需要帮助。

这看起来很接近,但是如果已经有太多连接,我的查询就会超时,这对于我的所有查找来说似乎需要更多工作: Removing duplicates from result of multiple join on tables with different columns in MySQL

感谢您的帮助,

大卫

最佳答案

万一其他人想知道,我发现问题根本不在于 sql,这对我的目的来说工作得很好。

相反,定义表中的数据具有一些不唯一的值,因此在定义了重复定义的情况下,结果会返回额外的行。

关于MySql - 将多个表连接到主表时出现重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879975/

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