【发布时间】:2011-09-28 09:20:10
【问题描述】:
我正在使用的 MySQL 中有几个表没有任何关系。他们确实有一列类似的数据(邮政编码/邮政编码)。
我必须对这些表进行比较,将一个表中的邮政编码与第一个表中的邮政编码进行比较并计算它们。
例如。
表 A 的邮政编码为 T0A 和 T0B(我只使用邮政编码中的前三个字符,因为这就是我需要比较的全部)
表 B 有 13 行邮政编码与 T0A 匹配,3 行邮政编码与 T0B 匹配。
所以结果应该是这样的:
T0A = 13
T0B = 3
但是,那么我需要将它们按城市分开,因此由于 T0A 和 T0B 都可能是一个城市,我需要将它们加在一起并得到类似的东西。
Edmonton = 16
我一直在用 for 循环和数组来做这件事。所以我将表 A 中的数据读入一个数组,将表 b 中的数据读入另一个数组。然后,我使用嵌套的 for 循环将表 B 中的邮政编码与表 A 中的邮政编码进行比较,以计算邮政编码的出现次数,然后将它们存储在另一个数组中。这一切都很好而且花花公子,但是现在我有点难以将计数分成正确的城市,我坐在这里想必须有一种更简单的方法来做到这一点。有没有人有任何建议,我会错吗?
结构 - 表 A
jos_postalzip_redirect | CREATE TABLE `jos_postalzip_redirect` (
`id` int(11) NOT NULL auto_increment,
`country_code` varchar(2) NOT NULL,
`prov_state_code` varchar(2) NOT NULL,
`city` varchar(60) NOT NULL,
`postal_zip` varchar(6) NOT NULL,
`email_address` varchar(60) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=739 DEFAULT CHARSET=utf8 |
结构 - 表 B
jos_form_submitteddata_form1 | CREATE TABLE `jos_form_submitteddata_form1` (
`id` int(11) NOT NULL auto_increment,
`bf_status` varchar(20) collate utf8_bin NOT NULL,
`bf_user_id` int(11) NOT NULL,
`FIELD_1` varchar(255) collate utf8_bin NOT NULL,
`FIELD_2` varchar(255) collate utf8_bin NOT NULL,
`FIELD_3` varchar(255) collate utf8_bin NOT NULL,
`FIELD_4` varchar(255) collate utf8_bin NOT NULL,
`FIELD_5` varchar(255) collate utf8_bin NOT NULL,
`FIELD_6` varchar(255) collate utf8_bin NOT NULL,
`FIELD_7` varchar(255) collate utf8_bin NOT NULL,
`FIELD_8` varchar(255) collate utf8_bin NOT NULL,
`FIELD_23` varchar(255) collate utf8_bin NOT NULL,
`FIELD_24` varchar(255) collate utf8_bin NOT NULL, //THIS IS THE POSTAL CODE FIELD
`FIELD_28` varchar(255) collate utf8_bin NOT NULL,
`FIELD_29` varchar(255) collate utf8_bin NOT NULL,
`FIELD_30` varchar(255) collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4044 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
【问题讨论】:
-
能否提供表A和表B的结构?您可以运行
SHOW CREATE TABLE table_name来获取用于创建表的MySQL 语法(其中table_name当然是要打印的表的名称) -
您能否澄清一下:您想在表 B 中查找表 A 中某处的所有邮政编码,并计算它们的出现次数,一次按邮政编码,一次按城市?
-
表B中哪个字段是postal_code的字段?
-
你能改进题名吗?我们从标签中知道它是关于 PHP 和 MySQL 的,我们知道它是关于“帮助”的,因为这是 Stack Overflow 并且......嗯......你还想要什么?香蕉?