У меня есть место, где хранятся страны, провинции и города. Я хочу, когда поиск города по его id; Я тоже вижу его провинцию и страну! Я пробовал слишком много, но я действительно не знаю, какой именно запрос мне нужно написать.Как объединить три таблицы вместе в MySQL?
Мое имя таблицы расположение и это мои поля с примерными данными:
id enName localName type in_location
1 Iran ایران country 0
2 Fars فارس province 1
3 shiraz شیراز city 2
4 marvdasht مرو دشت city 2
Я хочу при поиске ID = 3 получить этот результат:
страна/область/город
Иран/Фарс/Шираз
Как я могу писать e этот запрос? Я знаю, что я должен присоединиться к столу 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 для достижения того, что вы пытаетесь сделать. –
Ваш запрос поражает цель реляционных баз данных, строки в одной таблице не должны быть напрямую связаны. – zoubida13
Почему вы пытаетесь подключиться к одной таблице? – NuttLoose