Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Внизselect from select как сделать правильно? Найти похожие ветки
← →
Vlad Oshin © (2006-12-15 13:48) [0]хочу сделать примерно следующее:
select * from tbl_turist where TU_DGcod=
select * from
tbl_dogovor
where
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006" //тут получаю таблицу из двух путевок, по которым едут по 2 человека. Собственно этих четырех человек и надо получить
почему то не нравится TU_DGcod=
← →
clickmaker © (2006-12-15 13:52) [1]where TU_DGcod=(select TU_DGcod from ... )
← →
Desdechado © (2006-12-15 13:58) [2]как ты интересно сравниваешь все поля (*) с одним полем?
что должно получиться?
← →
Vlad Oshin © (2006-12-15 13:59) [3]
> clickmaker © (15.12.06 13:52) [1]
не... не получается или я не понял :)
IN !
select * from tbl_turist
where TU_DGcod in (
select
DG_code
from
tbl_dogovor
where
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006")
вот что значит покурить :)
← →
Vlad Oshin © (2006-12-15 14:04) [4]
> Desdechado © (15.12.06 13:58) [2]
что странного?
select * from tbl_A where row_1="asdqeqw" - можно.
будет таблица tbl_A1, подтаблица таблицы tbl_A
Теперь делаем из нее select но по другому значению
select * from tbl_A1 where row_2="asdqeqw"
Разве нет?
← →
clickmaker © (2006-12-15 14:14) [5]
> [4] Vlad Oshin © (15.12.06 14:04)
вот это странно
select * from tbl_turist where TU_DGcod=
select * from
tbl_dogovor
TU_DGcod сравниваешь с *
← →
Vlad Oshin © (2006-12-15 14:17) [6]дошло
← →
stone © (2006-12-15 14:52) [7]может лучше так?
select d.* from tbl_dogovor d
inner join Country c on d.DG_CnKey = c.CN_key
inner join CityDictionary cd on d.DG_CtKey = cd.Ct_key
inner join tbl_TurList t on c.DG_TRKEY = t.TL_key
where
c.CN_NameLat="HURGHADA"
and
cd.CT_Name=" HURGHADA"
and
t.TL_Name="HUR_100_ 23.12"
and
d.DG_TurDate = "23-12-2006"
← →
stone © (2006-12-15 14:59) [8]вернее так
select tt.* from tbl_turist tt
inner join tbl_dogovor d on tt.TU_DGcod = d.DG_code
inner join Country c on d.DG_CnKey = c.CN_key
inner join CityDictionary cd on d.DG_CtKey = cd.Ct_key
inner join tbl_TurList t on c.DG_TRKEY = t.TL_key
where
c.CN_NameLat="HURGHADA"
and
cd.CT_Name=" HURGHADA"
and
t.TL_Name="HUR_100_ 23.12"
and
d.DG_TurDate = "23-12-2006"
← →
Desdechado © (2006-12-15 14:59) [9]Vlad Oshin © (15.12.06 13:59) [3]
> IN
Это для случаев, когда возвращается отличное от единицы количество записей (ноль или больше единицы)
← →
MsGuns © (2006-12-15 15:20) [10]>stone © (15.12.06 14:59) [8]
>может лучше так?
Я бы сказал "приятнее" для сервера, т.к. не заставляет его заниматься выборками ДО каких-бы то ни было сравнений (вложенные селекты) ;)
← →
Vlad Oshin © (2006-12-15 18:17) [11]подскажите еще такой момент
select * from
tbl_dogovor
where
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006"
получено 2 путевкиselect * from tbl_turist
where TU_DGcod in (
select
DG_code
from
tbl_dogovor
where
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006")
получено 4 туриста по этим путевкам(мне так понятнее)
а как вывести
турист1-путевка1
турист2-путевка1
турист3-путевка2
турист4-путевка2
?
← →
Vlad Oshin © (2006-12-15 18:34) [12]следующее дает такое повторение
турист1-путевка1
турист2-путевка1
турист3-путевка2
турист4-путевка2
турист1-путевка1
турист2-путевка1
турист3-путевка2
турист4-путевка2
select * from tbl_turist, tbl_dogovor
where TU_DGcod in (
select
DG_code
from
tbl_dogovor
where
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006")
and
DG_CnKey = (select CN_key from tbl_Country where CN_NameLat="HURGHADA")
and DG_CtKey = (select Ct_key from CityDictionary where CT_Name=" HURGHADA")
and DG_TRKEY = (select TL_key from tbl_TurList where TL_Name="HUR_100_ 23.12")
and DG_TurDate = "23-12-2006"
← →
MsGuns © (2006-12-16 02:05) [13]Дорогой Влад, потратьте пару-тройку дней на SQL,- ей богу, окупится многократно
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.05 c