Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Несколько LEFT JOIN в Акцесс


Anatoly Podgoretsky ©   (2008-01-18 08:57:00) 

Возможен ли запрос в Акцесс (доступ через JET) такого вида

FROM tbl1
LEFT JOIN tbl2 ON условие
LEFT JOIN tbl3 ON условие

По документации на JET вроде только для INNER JOIN


Anatoly Podgoretsky   (2008-01-21 18:48:00) [1]

> eddoc  (21.01.2008 13:55:19)  [19]

Так это когда было :-)
А вопрос точно такой был?
Просто я дернулся в справку а там ничего нет.


eddoc   (2008-01-21 13:55:00) [2]

>>Меня другое волнует, неужели я так плохо читаю документацию, что не нашел такого примера.

Анатолий, "... ну вы, блин, даете!" (с)
Я около 1,5 лет назад задавал подобный вопрос на  форуме скул.ру - и до сих пор считал автором правильного ответа именно Вас :)


Anatoly Podgoretsky   (2008-01-18 15:41:00) [3]


> Анатолий, а можно было вложенными сделать:

Можно, но я предпочитаю быструю работу, метод предложенный sniknik работает.
Меня другое волнует, неужели я так плохо читаю документацию, что не нашел такого примера. Я навсякий случай просмотрел пример и по INNER JOIN ну нет такого синтаксиса и даже намека на него.


MsGuns   (2008-01-18 14:53:00) [4]

Невнимательно просмотрел что набрал (копипас гробит нас ;))
Синтаксис такой или почти такой как в Local SQL

Анатолий, а можно было вложенными сделать:
Select from t3 left join
(Select from t1 left join t2 on) on ..

А вот такой номер в локале нем прокатит ;)


ANTPro   (2008-01-18 13:50:00) [5]

SELECT Таблица1.Код, Таблица2.название11, Таблица3.название22
FROM Таблица3
INNER JOIN (Таблица2 INNER JOIN Таблица1 ON Таблица2.Код = Таблица1.Название1) ON Таблица3.Код = Таблица1.Название2;
---
Access 2007


Anatoly Podgoretsky   (2008-01-18 13:43:00) [6]


> FROM
> (tbl1 LEFT JOIN tbl2 ON условие) LEFT JOIN tbl3 ON условие

Другое дело, как только я не ставил скобки, но не догадался после FROM
Теперь работает.


Евгений Р.   (2008-01-18 13:06:00) [7]

Вот первый попавшийся кусок живого текста из FB

       select sp.kNom,sp.nMesta,sp.mest,sk.mest as mst
       from asPos sp
         left join sNom sn
            on sn.knom=sp.knom
         left join sKatNom sk
            on sk.kod=sn.kkat
       where idfd=6338

вот результат

KNOM NMESTA MEST MST
416 0 2 2
418 0 2 2
435 1 1 2
437 0 2 2
324 0 2 2


sniknik   (2008-01-18 12:51:00) [8]

> Не фига такой синтаксис не работает
должен, по сути, только MsGuns скобочки неправильно расставил (надо было смотреть в справке по INNER JOIN)

вот так правильнее
FROM
(tbl1 LEFT JOIN tbl2 ON условие) LEFT JOIN tbl3 ON условие


Евгений Р.   (2008-01-18 12:46:00) [9]

В LocalSQL и FB

from t1
left join t2
 on t1.fld1=t2.fld1
left join t3
 on t3.fld1=t2.fld1 and t3.fld2=t1.fld5

К статьи, не знаю как по теории, но если в t2 окажется несколько записей с критерием  t1.fld1=t2.fld1, то в выборке будет 2 строки


Anatoly Podgoretsky   (2008-01-18 12:35:00) [10]


> MsGuns ©   (18.01.08 11:23) [5]
> FROM tbl1
> ((LEFT JOIN tbl2 ON условие)
> LEFT JOIN tbl3 ON условие)
> LEFT JOIN tbl4 ON условие

Не фига такой синтаксис не работает, даже

FROM tbl1
(LEFT JOIN tbl2 ON условие)

сразу ругается на ошибку синтаксиса в FROM
и также на

FROM tbl1
((LEFT JOIN tbl2 ON условие)
LEFT JOIN tbl3 ON условие)


Евгений Р.   (2008-01-18 12:29:00) [11]

В LocalSQL и FB использую постоянно именно такой синтаксис. Проблем нет. Ну а с Акцесс не сталкивался


Anatoly Podgoretsky   (2008-01-18 12:18:00) [12]


> документация или F1 в самом access-е.

Документация по JETSQL молчит об этом, а документации по Акцесс или самого Акцесса у меня нет.


Евгений Р.   (2008-01-18 12:02:00) [13]


> документация или F1 в самом access-е.

С access не работал, отличается от стандартной?


sniknik   (2008-01-18 11:38:00) [14]

гадость, не гадость, а набросать "черновик" и/или посмотреть синтаксис позволяет, у многих и такого нет.


MsGuns   (2008-01-18 11:27:00) [15]

>sniknik ©   (18.01.08 11:04) [2]
>и кстати, в самом access-е (программе) есть неплохой мастер (конструктор) по составлению запросов...

"Какая гадость ! Какая гадость эта ваша заливная рыба" (с)
 ;))


MsGuns   (2008-01-18 11:23:00) [16]

FROM tbl1
((LEFT JOIN tbl2 ON условие)
LEFT JOIN tbl3 ON условие)
LEFT JOIN tbl4 ON условие


sniknik   (2008-01-18 11:12:00) [17]

документация или F1 в самом access-е.


Евгений Р.   (2008-01-18 11:08:00) [18]

А чот в синтаксисе не так?


sniknik   (2008-01-18 11:04:00) [19]

и кстати, в самом access-е (программе) есть неплохой мастер (конструктор) по составлению запросов... да вставляет много лишнего, да есть заморочки с различиями в понятиях (например неопределенный набор символов в запросе это не ошибка, это параметр... который при выполнении в самом аксессе будет запрошен. поля подстановки это не поля хотя так представлены), да сложный запрос после него обычно требует ручной доводки... но в общем то представление и вариант запроса он дает, и даже не знающий SQL может с его помощью составить чтото вполне рабочее.


sniknik   (2008-01-18 10:58:00) [20]

а чего нет? главное соблюдать синтаксис со вложенностями джойнов как в справке описано. (тут, в вопросе, он неправильный)


Наверх

Титульная страница Поиск, карта сайта Написать письмо