|
|
|
| Есть таблица
country
Поля
тут хранятся страны и курорты для этих стран.
например
Курорт для него
Задача такая -
есть база, где хранятся записи - для каждой записи сопоставлено по два id - страна и курорт.
задача - вывести из базы со странами курортами названия курортов, но чтобы отсортированы они были по названию страны. при этом вывести нужно только нужные.
т.е. есть набор IDшек курортов, нужно их отсортировать согласно названию страны. | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 16:03)
| | И зачем вы запихнули всё это в одну таблицу? | |
|
|
|
|
|
|
|
для: Gubichev
(21.12.2010 в 16:25)
| | у меня в одной таблице древо страна-курорт
в другой таблице туры хранятся. для каждого тура выбирается страна-курорт
на мой взгляд вполне логично | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 16:55)
| | логично было бы лишь в случае, если бы страна и курорт были бы одним и тем же.
Это, однако, не так. | |
|
|
|
|
|
|
|
для: Trianon
(21.12.2010 в 17:10)
| | Ну почему же, схема аналогичная как допустим в CMS различных древо каталогов устроено
есть главные категории - внутри них подкатегории
так и тут - страны с курортами | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 19:05)
| | Там есть категория. Это одна сущность с единым набором свойств.
А страна и курорт - сущности разные.
У страны есть имя президента, и объем внешнего долга.
А у курорта - количество звездочек и наличие морского пляжа на территории.
До сих пор не доходит? | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 16:03)
| | Сначала давайте уточним, беря ваш случай, может ли:
а) быть тур с id = 1 (т.е. Египет)
б) быть курорт с id = 2 (т.е. Хургада или подобное, когда parentid будет ссылаться на запись, которая в свою очередь сама имеет parenrid не равную 0) | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 16:03)
| | возможно я ошибаюсь... но как я понимаю у страны нет родителя поэтому у страны parentid всегда будет равен 0, т.е. надо выводить записи у которых есть родитель т.е. parantid <> 0 а сортировку делать по названию страны т.е. по parentid
тогда вывод названий курортов
Select name from country
where parentid<>0
order by parentid
вывод idшек курортов по порядку id стран
Select id from country
where parentid<>0
order by parentid | |
|
|
|
|
|
|
|
для: Richard Ferlow
(21.12.2010 в 16:03)
| | если предположить, что вы различаете страну от курорта по parentID ( 0 - значит страна, иначе - курорт),
похоже, придется делать join с самой собой. что-то типа
select c1.*, c2. name as country_name
from
country c1
join country c2 on c1.parentId=c2.id
where parentId <> 0 order by country_name
|
| |
|
|
|
|
|
|
|
для: ride
(21.12.2010 в 17:24)
| | вот, похоже то что нужно | |
|
|
|