我有两个表。CONCAT值在JOIN的ON条件下
表:国地名:
- 国家(2字符ISO代码,例如SE)
- AdminArea(CHAR代码,例如0330)
表AdminAreas
- AdminCode,(Combin Coutry和AdminArea,例如“SE.0330”)
因此,我想要加入表的AdminAreas的ID是第一个表上的列的组合。要加入它,我需要加入Geonames表中的两个值。就像是。
SELECT
geoname.geonameid, geoname.name, geoname.latitude, geoname.longitude,
geoname.country, geoname.admin1, admin_one.admin_id, admin_one.geoname_id
FROM geoname
INNER JOIN admin_one ON admin_one.admin_id = CONCAT(geoname.country, '.', geoname.admin1)
WHERE country='SE' LIMIT 10
不幸的是,这是行不通的。这似乎不是我可以CONCAT
或做一个JOIN string_agg()
。我如何获得这个JOIN的工作?
似乎是糟糕的桌子设计......在任何地方以相同的方式存储数据。 – jarlh
@jarlh我从现有的来源导入数据。这不是我的桌子设计。 –