2011-10-17 85 views
0

我正在CakePHP中的应用程序系统上工作。每份申请都包含申请人的地址和(仅限英国)邮编。基于另一个表格行比较MySQL表中的值

客户希望能够将“邮编区域”分配给他们团队的给定成员。 不幸的是,邮政编码区域在格式和长度变化 - 例子:TATQ1S60BS22TA6 4EJ

的用户希望能够在需要在每个用户的基础上指定点面结合,或者更具体领域。 schema

我需要能够把每个prefix和比较它postcode为每个应用程序,并找到任何匹配。


用户Ross管理与应用邮政编码开头:BQBSS60

用户Dave管理应用程序具有完全邮政编码:BS22 4JLTA6 7EJ


我想,最好的办法是有一个完整的用户定义邮政编码前缀的表:

id | prefix 
    1 |  TQ 
    2 |  TL 
    3 |  S50 
    4 |  S55 
    5 | TA6 4EJ 

为每个用户分配一个邮政编码区域进行管理。

我在想,如果我可以比较每个应用程序的邮政编码到每个前缀,我可以检索给定邮政编码区域中的所有应用程序,然后查找它属于哪个用户。

id | postcode 
1 | tq33 abc 
2 | TL5 8HA 
3 | s50 11l 

不幸的是,邮政编码数据不是任何标准/常规格式;所以这可能会变得棘手。 这听起来像我需要JOINprefix对邮政编码;但因为没有钥匙我不认为这是可能的。

prefixpostcode之间没有直接联系。感觉像我失去了一些基本的东西

任何指针?

回答

1

尝试:

SELECT users.name, app.* from applications app, users, postcodes where app.postcode LIKE CONCAT(postcodes.prefix,'%') AND postcodes.user_id = users.id 
相关问题