vovan1409
9.03.2013 - 23:27
Есть три табл.:
1)
People(
peopleId,name,cityId)
2)
City(
cityId,countryId,name)
3)
Country(
countryId,name)
Помогите с выборкой имени человека(people.name) и его страны(country.name), через промежуточную таблицу city.
Вот выборка имени и названия города:
SELECT p1.name AS pn, c1.name AS cn
FROM people p1
INNER JOIN city c1 ON p1.cityid=c2.cityid
Важно: только с использованием JOIN!!!
SELECT p1.name AS pn, c1.name AS cn, country.name as country_name
FROM people p1
INNER JOIN city c1 ON p1.cityid=c2.cityid
LEFT JOIN country on country.id = city.id_country
vovan1409
9.03.2013 - 23:55
Цитата (bestxp @ 9.03.2013 - 23:43) |
SELECT p1.name AS pn, c1.name AS cn, country.name as country_name FROM people p1 INNER JOIN city c1 ON p1.cityid=c2.cityid LEFT JOIN country on country.id = city.id_country |
Так не работает, в табл. people храниться только cityID(номер города в БД), если бы еще и хранилось countryId, то проблем бы не было...
Игорь_Vasinsky
10.03.2013 - 00:01
структура хорошая.
дай дамп.
хоть по строк 5 из таблиц
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vovan1409
10.03.2013 - 00:10
PEOPLE
peopleid name cityid
76 Kucherenko 10
77 Ostrovin 11
CITY
cityid countryid name
10 1 Rostov
11 2 Madrid
COUNTRY
countryid name
1 Russia
2 Spain
Placido
10.03.2013 - 00:15
да зачем там дамп. people join city on people.cityid = city.cityid join country on city.countryid = country.countryid. И все.
Игорь_Vasinsky
10.03.2013 - 00:17
думаешь?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vovan1409
10.03.2013 - 00:23
SELECT p1.name AS pn, c1.name AS cn, c2.name as countryn
FROM people p1
INNER JOIN city c1 ON p1.cityid=c2.cityid
LEFT JOIN country AS c2 on c1.countryid = c2.countryid
Вот так получилось! :P Всем, кто учавствовал огромное СПАСИБО!!!
innovate
10.03.2013 - 00:46
вообще не понимаю зачем так делают:
AS pn, AS cn, AS c2...
помне так куда понятнее:
SELECT people.name, country.name FROM city
INNER JOIN country ON city.countryid = country.countryid
INNER JOIN people ON city.cityid = people.cityid
Игорь_Vasinsky
10.03.2013 - 00:51
с альясами меньше букв набирать надо)
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Placido
10.03.2013 - 00:55
То же самое, но короче:
SELECT people.name, country.name FROM city
JOIN country USING (countryid)
JOIN people USING (cityid)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.