2016-10-06 2 views
0

найти страну мудрых все государства и государство, мудрые городов из базы данных с использованием присоединитьсяузнать страну Мудрых все государства и государства мудрых городов из базы данных, используя присоединиться

У меня есть три таблицы в базе данных то есть страны, штаты, город Я обеспечивая сопоставление между ними с использованием первичного ключа и внешнего ключа. Я хочу конкретную страну «Индия» и связанную с ней страну всех штатов и городов ... Как я могу ??? Здесь я даю мой код ... который я created..Give мне любое другое предложение

select countries.name as country, 
states.name as state, 
cities.name as city 
from states inner join cities 
on states.id = cities.state_id 
inner join countries 
WHERE countries.name='India'; 
+0

Похоже, что вам не хватает условия соединения между странами и штатами. Совместный с тем, что у вас есть с государствами и городами. – mikeyq6

ответ

1

Пожалуйста, используйте ниже запрос
таблицы Имея данные ниже -

+------+-------+ 
| id | name | 
+------+-------+ 
| 1 | india | 
| 2 | pak | 
| 3 | afgan | 
+------+-------+ 

Таблица состояний

+------+---------+------------+ 
| id | name | country_id | 
+------+---------+------------+ 
| 1 | haryana |   1 | 
| 2 | gujrat |   1 | 
| 3 | himchal |   2 | 
+------+---------+------------+ 

Города Таблица

+------+-------------+----------+ 
| id | name  | state_id | 
+------+-------------+----------+ 
| 1 | bahadurgarh |  1 | 
| 2 | hisar  |  1 | 
| 3 | surat  |  2 | 
| 4 | shimla  |  3 | 
+------+-------------+----------+ 




select cities.id , cities.name ,states.id , states.name ,countries.name from cities left join states on cities.state_id = states.id left join countries on states.country_id = countries.id where countries.name='india' ; 

+------+-------------+------+---------+-------+ 
| id | name  | id | name | name | 
+------+-------------+------+---------+-------+ 
| 1 | bahadurgarh | 1 | haryana | india | 
| 2 | hisar  | 1 | haryana | india | 
| 3 | surat  | 2 | gujrat | india | 
+------+-------------+------+---------+-------+ 
0

Попробуйте следующее (Извините за не переносами в коде. Не знаю, как это работает).

Select countries.name as country, states.name as sta from countries left join cities on states.id= cities.state_id where states.country_id in (SELECT countries.id FROM countries where countries.name='India') 
Смежные вопросы