2011-10-17 83 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 
相關問題