Mysql多表链接加入

时间:2014-01-05 15:59:36

标签: php mysql sql sql-server join

有三张桌子 表:洲

Continent     Id
Asia           1
Europ          2
North America  3

表:各

Nation        Id
China          1
Korea          2
France         3
UK             4
US             5
Canada         6

表:Continents_Nations

Continent_id    Nation_id
1                1
1                2
2                3
2                4
3                5
3                6

如何取出以下结果?

Continent   Nation
Asia        China
Asia        Korea
Europe      France
Europe      UK
North America  US
North America  Canada

我试过SQL:

SELECT * 
FROM `C`
JOIN `C_N` ON `id`=`C_N`.`C_id` 
JOIN `N` ON `C_N`.`N_id`=`N`.`id`

但这并没有表现出我的期望。

我还希望加入更多像“城市”这样的表格与“国家”

我尝试了上面的例子,结果证明...... 这个例子是我的案例的简要版本,我再次检查,发现我的数据不正确,所以它没有成功。 但SQL子句没有问题 感谢您的回答

2 个答案:

答案 0 :(得分:0)

SELECT
    Continents.Continent,
    Nations.Nation
FROM
    Continents_Nations
INNER JOIN
    Continents
ON
    Continents.Id=Continents_Nations.Continent_id
INNER JOIN
    Nations
ON
    Nations.Id=Continents_Nations.Nation_id

要将更多像“城市”这样的表加入“国家”,请使用相同的方法:通过主键连接 - >外键。

答案 1 :(得分:0)

SELECT C.Continent, N.Nation
FROM Continents_Nations AS CN
JOIN Nations    AS N ON(N.Id = CN.Nation_id )
JOIN Continents AS C ON(C.Id = CN.Continent_id )
ORDER BY C.Continent ASC, N.Nation ASC
相关问题