我有一个包含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 列进行比较。
我需要定义 City、Region 和 Country 的原因是因为我需要在另一个名为Events的表中输入它们的 ID 。这是我将 CityID 插入到我的事件表中的查询:
INSERT INTO Events (Events.CityID)
VALUES ((SELECT CityID FROM Cities WHERE City = inCity LIMIT 1));
这也不起作用,因为有时有多个城市具有相同的名称。
我以前可以用 PHP 做到这一点,但我目前正在使用 myDBR 报告来做到这一点,我只能使用查询。