Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Вложенный Select   Найти похожие ветки 

 
kyn66 ©   (2006-04-10 17:08) [0]

Необходимо сделать сложный запрос с помощью вложенного SELECT, так вот я никогда с этим не сталкивался. Может кто подскажет урлу на доходчивый пример или как правильно прикрепить UNION.


 
Курдль ©   (2006-04-10 17:12) [1]

Union (см. перевод) - это не вложенный Select, а объединение наборов данных 2-х запросов.


 
stud ©   (2006-04-10 17:12) [2]

а при чем тут вложеный селект и унион?


 
kyn66 ©   (2006-04-10 17:23) [3]

Ну может не так выразился.... пардонс. Короче у меня четыре таблицы:
1 - тип организации
2 - наименование организации
3 - наименование подразделения организации
4 - телефон организации.

Делая выборку номера телефона(из таб. 4), я имею тока код организации, а мне нужно и тип выбрать. А код типа есть тока в т.2, которая связана с т.1, вот и получается, сто мне нужно делать как-бы двойной запрос в одном TQuery.


 
stud ©   (2006-04-10 17:25) [4]

так это с помощью join решается, без двойных запросов


 
Desdechado ©   (2006-04-10 17:25) [5]

вложенный select бывает разный:
1. в поле выбора select t.a, (select t1.b from t1 where... ) from t
2. в условии выбора select t.a from t where t.b in (select t1.b from t1 where...)
3. в списке таблиц select t.a, t1.b from t, (select ... ) t1 where ...
4. прочие виды, а также их комбинации
детали в справке по тому диалекту SQL, который поддерживается твоим сервером


 
MsGuns ©   (2006-04-10 17:30) [6]

>Desdechado ©   (10.04.06 17:25) [5]

Вообще-то ты в 1) и 2) привел примеры подзапросов, а вложенный - это Select .. from select

Хотя, вообще-то четкого определения вроде бы нет ;)


 
Курдль ©   (2006-04-10 17:45) [7]

Грустно все это :(

Афтар (иначе не назовешь) пришел искать помощи не потрудившись полистать хоть одну книжку или даже статью по основам SQL...


 
kyn66 ©   (2006-04-10 17:45) [8]

> stud ©  
Так что там насчет join?

Пока ешшо не допер... 8-(.

>MsGuns
Вообще-то ты в 1) и 2) привел примеры подзапросов, а вложенный - это Select .. from select

А как определить, в это SELECT FROM SELECT что из какой таблицы вытягивать?


 
stud ©   (2006-04-10 17:54) [9]

тебе нужен телефон конкретной оргнизации?
наверное примерно так
select ... from организанция
left outer join телефон on организацияю.полесвязи=телефон.полесвязи
left outer join тип_организации on организация.полесвязи=тип.полесвязи
where ......


 
MsGuns ©   (2006-04-11 13:09) [10]

>kyn66 ©   (10.04.06 17:45) [8]
>А как определить, в это SELECT FROM SELECT что из какой таблицы вытягивать?

SELECT Q2.F1, Q1.F2,.. FROM
  (SELECT Q1.Field1 F1, Q1.Field1 F2,.. FROM
     (SELECT <Любой запрос к любым таблицам>) Q1) Q2
[JOIN ...]
[WHERE ..]
[GROUP BY ..]
[ORDER BY ..]

А почитать самому ?


 
solenko ©   (2006-04-11 13:28) [11]

1. Вложенные запросы тут не нужны -- просто многотабличный запрос
2. Вложенные запросы mysql делжит только в последних версиях
3. Можно обойтись без join (то ли я ми пользоваться не умею, то ли он работает оч медленно в mysql)
4. select т4.телефон, т1.тип from т1, т2, т4 where т1.id = т2.id_типа AND т2.id = т4.id_организации AND (условия выборки из таблицы т4)


 
Silla ©   (2006-04-13 13:05) [12]

Доброго времени суток!
Заранее прошу извинения, пишу здесь, чтобы не создавать новый топик.

Прошу помощи: задача состоит в следующем
есть таблица
Сотрудников: ИД, ФИО
другая таблица
Телефоны: ИД, ИДСотрудников, Телефон
связь: один ко многим

Необходим такой запрос, который бы Выбрал все телефоны в одну ячейку,
например как при объединении полей (Access)

Select (ID & " - " & FIO) AS FullFIO FROM Jobs

Заранее спасибо!


 
Курдль ©   (2006-04-13 13:12) [13]


> Silla ©   (13.04.06 13:05) [12]

СУБД какая? Некоторые могут такое вытворять, а в некоторых - только процедурой.


 
Sergey13 ©   (2006-04-13 13:15) [14]

2[12] Silla ©   (13.04.06 13:05)
>пишу здесь,
А почему не в соседнем топике? Тема твоего вопроса никак вроде с сабжевой перекликается только тем что "про телефоны".

>чтобы не создавать новый топик.
Этим ты сильно разгрузил весь интернет. 8-)

Никак вроде не получится запросом. Только через хранимую процедуру (чего в Аксесе вроде нет) или на клиенте.


 
Silla ©   (2006-04-13 14:11) [15]


> Sergey13 ©  

Поиском - набрел на данный топик, по слову "Объединение"
поэтому и написал здесь.

Жаль. Тогда будем добавлять отдельное поле, где собирать будем все телефоны через запятую.


 
Sergey13 ©   (2006-04-13 14:15) [16]

2 [15] Silla ©   (13.04.06 14:11)
> Тогда будем добавлять отдельное поле
В таблице в базе?


 
Silla ©   (2006-04-13 14:36) [17]

В таблице Сотрудников
А при добавлении/изменении/удалении данных телефонов
обновлять в таблице Сотрудников данное поле


 
Silla ©   (2006-04-13 14:37) [18]

Спасибо еще раз всем.


 
Sergey13 ©   (2006-04-13 15:03) [19]

2[17] Silla ©   (13.04.06 14:36)
>В таблице Сотрудников
Ну-ну. А потом, когда понадобится еще в строчку и + с кодами городов - еще поле добавим.
А что, тоже метод.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.063 c
2-1147777741
Steplerr
2006-05-16 15:09
2006.06.04
Печать файла в DOS кодировке


3-1144408053
sia
2006-04-07 15:07
2006.06.04
delphi 7 &amp; BDE 4


2-1147787175
!_SM_!
2006-05-16 17:46
2006.06.04
Массив компанент


8-1136542704
это я:)
2006-01-06 13:18
2006.06.04
Picture.LoadFromStream


15-1147325915
Ega23
2006-05-11 09:38
2006.06.04
С Днём рождения! 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский