2011-06-15 123 views
0

我有两张表,其中一张包含新闻纸的报纸和扇区邮编列表(所以是部分邮政编码)。例如'BB5 2''Accrington Observer'。在另一张表中,我有一个完整的邮编例如BB5 2HQ的大名单。部分字符串匹配问题

我想生成一个结果集,其中包含第二个表中的完整邮编和第一个表中匹配的发布,其基础是将部分代码与完整代码进行匹配。

我试过这个,但是它会产生奇怪的结果,像空白发布邮政编码,但总是直接匹配结果后;

SELECT sd.domain, p.postcodes FROM postcodes p left join sector_domains sd on p.postcodes LIKE CONCAT(sd.postcode,'%') ; 
+0

请退出标记标题。问题已经有一个标记机制。 – 2011-06-15 10:25:25

回答

0

left join将确保postcodes所有行会表示他们是否有匹配的行sector_domains。如果他们在sector _domains中没有匹配的行,则sector_domains字段将为null

这会解释您看到的行为吗?如果是这样,你可以尝试类似:

SELECT sd.domain, p.postcodes FROM postcodes p join sector_domains sd where p.postcodes LIKE CONCAT(sd.postcode,'%') ;