任何人都可以帮我解决我想要整理的MySQL查询。我有两个表如下(仅为示例缩减)。
uk_postcodes
____________
Pcode | County | Region
AB10 | Aberdeen | Scotland
AB11 | Aberdeen | Scotland
B10 | West Midlands | West Midlands
p_venues
________
id | Venue_name | address_postcode
1 | Samples venue | AB10 1AT
2 | Samples venue | B10 2DZ
很简单,我正在尝试根据Region
表中相应的邮政编码(uk_postcodes
)从表格address_postcode
中选择p_venues
。
我已尝试过Like%
和REGEXP ^
,但似乎无法让它发挥作用。
这就是我尝试过的......
SELECT * FROM `uk_postcodes`, `p_venues`
WHERE `p_venues`.address_postcode REGEXP ^ `uk_postcodes`.Pcode
如果我可以专门提供硬编码的数据,这将很容易,但问题在于查询的第二部分中的比较(uk_postcodes.Pcode
)是一个字段 - 我似乎无法使语法正确。
有人可以帮忙吗?
由于
答案 0 :(得分:4)
这应该这样做。您需要将LIKE
通配符连接到uk_postcodes的Pcode值。如果您的任何列是固定长度的文本,则可能需要先修剪尾随空格。
SELECT p.*, u.Region
FROM p_venues p
INNER JOIN
uk_postcodes u
ON p.address_postcode LIKE CONCAT(u.Pcode, '%')
答案 1 :(得分:0)
我认为你需要加入这些表格。表1 t1内部连接表t2在t1.col = t2.col
上