Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
6-1159950477
POINT
2006-10-04 12:27
2007.03.11
webbrowser


15-1171652440
Чародей
2007-02-16 22:00
2007.03.11
icq


8-1147019307
Константинов
2006-05-07 20:28
2007.03.11
WaveOut


15-1171382070
oldman
2007-02-13 18:54
2007.03.11
Что только не узнаешь по телеку...


15-1171461962
IMHO
2007-02-14 17:06
2007.03.11
Опрос: программа для создания иконок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский