Главная страница
    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.041 c
6-1159912290
Scar89
2006-10-04 01:51
2007.03.11
Отправка смс


2-1171877260
john_mag
2007-02-19 12:27
2007.03.11
компонент TMenu


2-1170926380
astronom
2007-02-08 12:19
2007.03.11
Копирование директорий


15-1171646175
GanibalLector
2007-02-16 20:16
2007.03.11
ICQ...AOL "режет" подключения с одного IP


11-1150407283
parovoZZ
2006-06-16 01:34
2007.03.11
Demo2Forms - не понял юмора





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский