Mysql SQL表映射
我有一个表格,上面有超过10万个六位数的CIP代码和相关标题: 六位数表:Mysql SQL表映射,mysql,sql-server-2008,Mysql,Sql Server 2008,我有一个表格,上面有超过10万个六位数的CIP代码和相关标题: 六位数表: +-----------------+-----------------------------------------------+ | SixDigitCIPCode | SixDigitCIPTitle | +-----------------+-----------------------------------------------+ |
+-----------------+-----------------------------------------------+
| SixDigitCIPCode | SixDigitCIPTitle |
+-----------------+-----------------------------------------------+
| 01.0000 | Agriculture, General |
| 01.0102 | Agribusiness/Agricultural Business Operations |
| 01.0201 | Agricultural Mechanization, General |
| 03.0501 | Forestry, General |
| 05.0112 | South Asian Studies |
+-----------------+-----------------------------------------------+
+------------------+--------------------------------------+
| FourDigitCIPCode | FourDigitCIPTitle |
+------------------+--------------------------------------+
| 01.00 | Agriculture, General |
| 01.01 | Agricultural Business and Management |
| 01.02 | Agricultural Mechanization |
| 03.05 | Forestry |
| 05.01 | Area Studies |
+------------------+--------------------------------------+
+-----------------+-----------------------------------------------------------+
| TwoDigitCIPCode | TwoDigitCIPTitle |
+-----------------+-----------------------------------------------------------+
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 03 | Natural Resources And Conservation |
| 05 | Area, Ethnic, Cultural, Gender, And Group Studies |
+-----------------+-----------------------------------------------------------+
我需要用两位数和四位数的CIP代码和标题来映射它。
四位数CIP表如下:
四位密码:
+-----------------+-----------------------------------------------+
| SixDigitCIPCode | SixDigitCIPTitle |
+-----------------+-----------------------------------------------+
| 01.0000 | Agriculture, General |
| 01.0102 | Agribusiness/Agricultural Business Operations |
| 01.0201 | Agricultural Mechanization, General |
| 03.0501 | Forestry, General |
| 05.0112 | South Asian Studies |
+-----------------+-----------------------------------------------+
+------------------+--------------------------------------+
| FourDigitCIPCode | FourDigitCIPTitle |
+------------------+--------------------------------------+
| 01.00 | Agriculture, General |
| 01.01 | Agricultural Business and Management |
| 01.02 | Agricultural Mechanization |
| 03.05 | Forestry |
| 05.01 | Area Studies |
+------------------+--------------------------------------+
+-----------------+-----------------------------------------------------------+
| TwoDigitCIPCode | TwoDigitCIPTitle |
+-----------------+-----------------------------------------------------------+
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 03 | Natural Resources And Conservation |
| 05 | Area, Ethnic, Cultural, Gender, And Group Studies |
+-----------------+-----------------------------------------------------------+
TwoDigitCIPTable:
+-----------------+-----------------------------------------------+
| SixDigitCIPCode | SixDigitCIPTitle |
+-----------------+-----------------------------------------------+
| 01.0000 | Agriculture, General |
| 01.0102 | Agribusiness/Agricultural Business Operations |
| 01.0201 | Agricultural Mechanization, General |
| 03.0501 | Forestry, General |
| 05.0112 | South Asian Studies |
+-----------------+-----------------------------------------------+
+------------------+--------------------------------------+
| FourDigitCIPCode | FourDigitCIPTitle |
+------------------+--------------------------------------+
| 01.00 | Agriculture, General |
| 01.01 | Agricultural Business and Management |
| 01.02 | Agricultural Mechanization |
| 03.05 | Forestry |
| 05.01 | Area Studies |
+------------------+--------------------------------------+
+-----------------+-----------------------------------------------------------+
| TwoDigitCIPCode | TwoDigitCIPTitle |
+-----------------+-----------------------------------------------------------+
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 01 | Agriculture, Agriculture Operations, And Related Sciences |
| 03 | Natural Resources And Conservation |
| 05 | Area, Ethnic, Cultural, Gender, And Group Studies |
+-----------------+-----------------------------------------------------------+
我在三个不同的SQL表中分别加载了两位、四位和六位CIP查找值。
我需要在SixDigitCIPTable中插入两位数和四位数的CIP详细信息以及相应的值
比如说,
SixDigitCIPTable的第一条记录是
01.0000 | Agriculture, General
所以两位数的代码是01,当在TwoDigitCIPTable中映射这两位数的代码时,要映射的记录是
01 | Agriculture, Agriculture Operations, And Related Sciences
01.00 | Agriculture, General
四位数代码将是01.00,而在FourDigitCIPTable中映射这四位数代码时,要映射的记录是
01 | Agriculture, Agriculture Operations, And Related Sciences
01.00 | Agriculture, General
因此,在SixDigitCIPTable中插入两位和四位代码后,第一条记录应该如下所示
01 | Agriculture, Agriculture Operations, And Related Sciences | 01.00 | Agriculture, General | 01.0000 | Agriculture, General
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
| TwoDigitCIPCode | TwoDigitCIPTitle | FourDigitCIPCode | FourDigitCIPTitle | SixDigitCIPCode | SixDigitCIPTitle |
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.00 | Agriculture, General | 01.0000 | Agriculture, General |
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.01 | Agricultural Business and Management | | |
| 01.0102 | Agribusiness/Agricultural Business Operations | | | | |
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.02 | Agricultural Mechanization | 01.0201 | Agricultural Mechanization, General |
| 03 | Natural Resources And Conservation | 03.05 | Forestry | 3.0501 | Forestry, General |
| 05 | Area, Ethnic, Cultural, Gender, And Group Studies | 05.01 | Area Studies | 05.0112 | South Asian Studies |
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
最后,SixDigitCIPTable应该是这样的
01 | Agriculture, Agriculture Operations, And Related Sciences | 01.00 | Agriculture, General | 01.0000 | Agriculture, General
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
| TwoDigitCIPCode | TwoDigitCIPTitle | FourDigitCIPCode | FourDigitCIPTitle | SixDigitCIPCode | SixDigitCIPTitle |
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.00 | Agriculture, General | 01.0000 | Agriculture, General |
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.01 | Agricultural Business and Management | | |
| 01.0102 | Agribusiness/Agricultural Business Operations | | | | |
| 01 | Agriculture, Agriculture Operations, And Related Sciences | 01.02 | Agricultural Mechanization | 01.0201 | Agricultural Mechanization, General |
| 03 | Natural Resources And Conservation | 03.05 | Forestry | 3.0501 | Forestry, General |
| 05 | Area, Ethnic, Cultural, Gender, And Group Studies | 05.01 | Area Studies | 05.0112 | South Asian Studies |
+-----------------+-----------------------------------------------------------+------------------+--------------------------------------+-----------------+-------------------------------------+
在SQL中有这样做的可能性吗?为什么要这样做?您有一个完美的表结构(除了可能将主键拆分为组合键以使连接更容易、更快),您想对其进行非规范化吗?使用
join
获取最终结果。不要更改表以获得最终结果。join
我想不起作用。因为每个表都有不同的数字记录,而不是按升序排列。对于样本,我提供了五条记录。所以我们不能直接连接表。当然,您可以使用连接,这就是关系数据库的用途(否则您不需要数据库)。尝试从TwoDigitCIP two中选择*join fourdigitcipp four on two.TwoDigitCIPCode=left(four.FourDigitCIPCode,2)在four.FourDigitCIPCode=left(six.SixDigitCIPCode,5)
。将代码拆分为1、2和3列将允许更好的联接和外键(例如,在将01.00
添加到表4之前,请检查表2中是否存在01
),但这样做效果很好。我再说一遍:请不要把所有数据放在一个巨大的表中。你为什么要这样做?您有一个完美的表结构(除了可能将主键拆分为组合键以使连接更容易、更快),您想对其进行非规范化吗?使用join
获取最终结果。不要更改表以获得最终结果。join
我想不起作用。因为每个表都有不同的数字记录,而不是按升序排列。对于样本,我提供了五条记录。所以我们不能直接连接表。当然,您可以使用连接,这就是关系数据库的用途(否则您不需要数据库)。尝试从TwoDigitCIP two中选择*join fourdigitcipp four on two.TwoDigitCIPCode=left(four.FourDigitCIPCode,2)在four.FourDigitCIPCode=left(six.SixDigitCIPCode,5)
。将代码拆分为1、2和3列将允许更好的联接和外键(例如,在将01.00
添加到表4之前,请检查表2中是否存在01
),但这样做效果很好。我重复一遍:请不要把所有数据放在一个巨大的表中。