Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Вложенный 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.035 c
2-1147936674
Zidane5
2006-05-18 11:17
2006.06.04
Internal error: SY576


2-1147856225
VitV
2006-05-17 12:57
2006.06.04
DBLookupComboBox1-отображение текста.


4-1142234174
Chaser
2006-03-13 10:16
2006.06.04
Определить активное ДОС-окно


1-1146203804
K_VAL
2006-04-28 09:56
2006.06.04
Приложение и разрешение экрана


1-1146170053
GL00m
2006-04-28 00:34
2006.06.04
Русский язык в диалогах Rave Report