MySQL SELECT从另一个表的数据开始?

时间:2012-01-16 13:11:56

标签: mysql select

任何人都可以帮我解决我想要整理的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)是一个字段 - 我似乎无法使语法正确。

有人可以帮忙吗?

由于

2 个答案:

答案 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