MySQL表JOIN与LIKE无需添加另一个ID列

时间:2016-01-18 06:47:38

标签: mysql

我有两张名为“Regions”“city_list”的表

REGIONS TABLE:
r_id      r_code        r_name
1         REGION I      Ilocos Region
2         REGION II     Cagayan Valley
3         REGION III    Central Luzon
4         REGION IV-A   CALABARZON
5         REGION IV-B   MIMAROPA

CITY_LIST TABLE:

city_id   city_name        city_region
32        Catbalogan       REGION VIII (Eastern Visayas)
33        Cauayan          REGION II (Cagayan Valley)
34        Cavite City      REGION IV-A (CALABARZON)
35        Cebu City        REGION VII (Central Visayas)
87        City of Naga     REGION VII (Central Visayas)

当用户从 city_list 表中选择城市名称时,我想引用区域表。例如:

用户从下拉列表中选择“Cauauyan”,服务器从Regions表中返回区域代码,即“r_code”列。

我可以在LIKE中使用JOIN语句而不在 city_list 表中添加区域ID列吗?是否有可能在没有“(卡加延河谷)”的情况下获得city_region中的值,如“REGION II”,并使用该值获取REGIONS表中的r_id?

1 个答案:

答案 0 :(得分:0)

SELECT r.r_id 
FROM REGIONS r
WHERE r.`r_code` IN(
SELECT LEFT(`CITY_LIST`.`city_region`,INSTR(`CITY_LIST`.`city_region`,"(")-1) AS Region_id FROM `CITY_LIST`);