使用SQL匹配两个表

时间:2014-07-23 19:48:21

标签: php mysql sql postgresql scripting

我有一张名为'公司'我在那里存储有关我所在的立陶宛公司的一般信息,因此这些列名称为名称,电话号码,城镇,邮政编码等。

但是还有一个名为" region"的列。在我的MySQL表中输入数据时,我没有填写任何内容。游民。这样整个列都是空的(即没有任何行在'区域'字段中带有值)

然而,我有另一张桌子,名为"地区" - 由两列组成:region_name& zipcodes - 存储国家/地区中每个地区的所有邮政编码,只有在行中断时才会分开。

如何编写一个更新语句的脚本,该更新语句将填写与每行(即每个公司)的zipcodes对应的companies-table中的region_name

示例:

一家公司的邮政编码为5000,名为'公司'但是没有列出任何地区。该表名为" regions"将region_name为" Northwest"连接的邮政编码为5000,其中值在其他邮政编码之间cla,由换行符分隔。

这是'地区的图像'表:

http://i.snag.gy/MRQje.jpg

我现在如何编写PHP或SQL语句的脚本,这将填写" Northwest"对于那些与该地区匹配的邮政编码的公司?

到目前为止我已经做到了这一点:

$result = mysql_query("SELECT * FROM companies WHERE zipcode LIKE '$something_here'")
or die(mysql_error()); if(mysql_num_rows($result) > 0){ 
echo mysql_num_rows($result);
while ($row = mysql_fetch_assoc($result)){
} } else { echo "no matches"; }
} else { echo "ingen matches."; } 

1 个答案:

答案 0 :(得分:0)

我非常怀疑你能用SQL实现这个目标。

然而,第二个想法,我不明白需要填写companies表中的那些区域,你总是可以通过查询region表找到regions

Select c.name, c.phonenumber, c.town, c.zipcode, r.region_name 
from companies c, regions r where r.zipcode like '%' + c.zipcode + '%'
and c.zipcode like '%something here%'