【发布时间】:2013-03-26 18:19:47
【问题描述】:
下面有问题
表1
第一种情况:
postcode
LS1 1LS
第二种情况:
postcode
LS11LS
表2
postcode| region
LS1 | Leeds
LS11 | Leeds
我正在使用以下查询来计算区域与相关邮政编码
SELECT table2.region as 'Region', COUNT( table2.postcode ) as 'count'
FROM table1
INNER JOIN table2 ON table1.postcode LIKE CONCAT( table2.postcode, '%' )
WHERE table1.postcode > ''
GROUP BY Region
在我得到的第一个案例上应用表 1
Leeds | 1
将它应用于表 1 第二个案例我得到
Leeds | 2
由于某种原因,在此邮政编码/类似邮政编码中,另一半与第一部分完全相同,并且在类似内部连接之间没有空格返回计数为 2。
有什么解决办法吗?
看到这个sqlfiddle
【问题讨论】:
-
我想我没有关注你的数据示例。
LS2的 Leeds 条目如何与LS1 1LS或LS11LS中的任何一个连接?表1中是否同时存在LS1 1LS和LS11LS? -
我也很困惑——“LS1”永远不会像“LS2%”...
-
@MikeBrant 对不起它的 LS1,已编辑,是的,最终用户错误可能会在一个表上出现 LS1 1LS 或 LS11LS 条目
-
@AhmedElGamil Cannot repeat。你确定你没有通过插入第二行同时保留第一行来测试案例 2,这会给出 2 个匹配的行吗?
-
hmm 这个小提琴很好,我的代码和这里的完全一样,如果我把这条记录改成没有空格的 LS11LS,它只给出计数 2,我截断了表格,仍然一样.. 生病了重新检查我的代码
标签: php mysql postal-code