2017-01-09 41 views
0

我有数据库结构是怎样的图像下方在MySQL连接3个表来选择字段

enter image description here

我想选择所有的街道,与街道名称,城市名称,省名。我的代码是这样的:

SELECT province.name as province, city.name as city, subdistrict.name as subdistrict 
    from provinces province, cities city, subdistricts subdistrict 
    WHERE province.id = city.id AND city.id = subdistrict.id; 

,但我只得到尽可能多的总省份的数据并非所有的街道数据

回答

0

您基本的SQL缺少一个逗号,但一般应该工作。我强烈建议使用更现代化的连接语法: -

SELECT province.name AS province, 
     city.name AS city, 
     subdistrict.name AS subdistrict 
FROM provinces province 
INNER JOIN cities city 
ON province.id = city.id 
INNER JOIN subdistricts subdistrict 
ON city.id = subdistrict.id; 

然而,从你的描述,我不能确定,如果你正在尝试做一些汇集处理?

+0

'SELECT province.name AS省, city.name AS城市, subdistrict.name AS街道 从省省 INNER JOIN城市城市 ON province.id = city.province_id INNER JOIN街道街道 ON城市.id = subdistrict.city_id;'这是正确的 –