【发布时间】:2013-08-09 06:15:42
【问题描述】:
我有一个包含 Name、Email 和 City 字段的表单。 城市是一个自动完成字段,它调用 3 个单独的表格(城市、地区、国家)。
我想做的是将这些分解成一个数组,以便 City、Region 和 Country 都是已定义的值。这是我现在对自动完成字段的查询:
SELECT c.City, concat(r.Region, ', ', co.Country)
FROM Cities c, Regions r, Countries co
WHERE c.RegionID = r.RegionID and c.CountryID = co.CountryID and c.City like CONCAT( inCity, '%' )
ORDER BY City;
如您所见,输入的值 (inCity) 仅与 Cities 表中的 City 列进行比较。
我需要定义城市、地区和国家的原因是因为我需要在另一个名为 Events 的表中输入它们的 ID。这是我将 CityID 插入 Events 表的查询:
INSERT INTO Events (Events.CityID)
VALUES ((SELECT CityID FROM Cities WHERE City = inCity LIMIT 1));
这也不起作用,因为有时会有多个城市同名。
我以前可以用 PHP 做到这一点,但我目前正在使用 myDBR 报告来做到这一点,我只能使用查询。
【问题讨论】:
-
你不能删除连接吗?像这样:SELECT c.City, r.Region, co.Country
-
@JoelLewiw - 我可以,但我有这样的,所以它们都显示为自动完成表单中的一行。即使我删除了 concat,我仍然不知道如何在我的 INSERT 查询中调用 Region & Country。
标签: mysql arrays autocomplete mydbr