【发布时间】:2016-05-16 09:06:18
【问题描述】:
我有一个存储国家、省和城市的表格位置。 我想通过 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
【问题讨论】:
-
Mysql 没有做分层查询的功能。但是,如果层次结构级别是预定义的,则可以实现此目的。一种更简单的方法是在 PHP 上编写一个递归函数来实现您正在尝试的功能。
-
您的查询违背了关系数据库的目的,同一个表中的行不应该直接相关。
-
你为什么要内联同一张表?