如何在MySQL中将三个表连接在一起?

时间:2016-05-16 09:06:19

标签: php mysql sql join

我有一个表位,可以存储国家,省和城市。 我想通过它的id搜索一个城市;我也可以看到它的省和国家!我已经尝试了太多,但我真的不知道我需要写什么确切的查询。

我的表名是位置,这些是带有示例数据的字段:

id             enName         localName   type     in_location
1              Iran              ایران    country          0
2              Fars             فارس      province         1
3              shiraz         شیراز       city             2
4              marvdasht        مرو دشت    city            2

我想在搜索id = 3时获得此结果:

  

国家/省/市

     

伊朗/法尔斯/设拉子

我如何编写此查询?我知道我必须加入桌子3次,但不知道究竟是怎么做的。

我试过的代码:

SELECT 
    in_location ,
    enName 
FROM 
    location 
WHERE 
    id = 12321 as a
INNER JOIN
    SELECT 
        * 
    FROM 
        `fzxit_location` as b 
    on a.in_location = b.id

3 个答案:

答案 0 :(得分:3)

最后应该总是提到法规。我想这就是你要找的东西。不过,对于3个或更少孩子的关系,你将被修复。

SELECT a.enName, b.enName, c.enName FROM location as a
LEFT JOIN location as b ON a.in_location = b.id
LEFT JOIN location as c ON b.in_location = c.id
WHERE a.id = 3

答案 1 :(得分:1)

虽然您尚未指定其他表名,但您可以试试..

Response.java

答案 2 :(得分:0)

此查询可能对您有所帮助!

select from p.province_name,
            ct.country_name,
            c.city_name 
from city as c 
   INNER JOIN provinces as p ON c.province_id=p.province_id 
   INNER JOIN countries as ct ON c.country_id = ct.country_id 
where c.city_id = "requested value";