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,'%') ;
4

1 回答 1

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,'%') ;
于 2011-06-15T10:24:30.127 回答