繁体   English   中英

用SQL匹配两个表

[英]Matching two tables with SQL

我有一个名为“ companies”的表,在其中存储了我要列出的立陶宛公司的一般信息,因此这些列的名称,名称,电话号码,城镇,邮政编码等。

但是,还有一个名为“区域”的列,在我的MySQL表中输入数据后,我没有填写任何内容。 笨蛋 这样整个列都是空的(即,没有行在“区域”字段中带有值)

但是,我还有另一个名为“ regions”的表,该表由两列组成:region_name和zipcodes-存储该国家/地区中每个地区的所有邮政编码,仅用换行符分隔。

我该如何编写一条更新语句,该语句将在companys表中填写与每一行(即每个公司)的邮政编码对应的region_name

例:

一家公司在名为“ companies”的表中的邮政编码为5000,但未列出区域。 名为“ regions”的表在一行中具有邮政编码5000,region_name为“ Northwest”,其中该值位于其他邮政编码之间,由换行符分隔。

这是“区域”表的图像:

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."; } 

我非常怀疑您能否仅通过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%'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM