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

Вниз

Несколько LEFT JOIN в Акцесс   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2008-01-18 08:57) [0]

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

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

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


 
sniknik ©   (2008-01-18 10:58) [1]

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


 
sniknik ©   (2008-01-18 11:04) [2]

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


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

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


 
sniknik ©   (2008-01-18 11:12) [4]

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


 
MsGuns ©   (2008-01-18 11:23) [5]

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


 
MsGuns ©   (2008-01-18 11:27) [6]

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

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


 
sniknik ©   (2008-01-18 11:38) [7]

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


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


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

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


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


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

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


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

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


 
Anatoly Podgoretsky ©   (2008-01-18 12:35) [11]


> 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:46) [12]

В 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 строки


 
sniknik ©   (2008-01-18 12:51) [13]

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

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


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

Вот первый попавшийся кусок живого текста из 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


 
Anatoly Podgoretsky ©   (2008-01-18 13:43) [15]


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

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


 
ANTPro ©   (2008-01-18 13:50) [16]

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


 
MsGuns ©   (2008-01-18 14:53) [17]

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

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

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


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


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

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


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

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

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


 
Anatoly Podgoretsky ©   (2008-01-21 18:48) [20]

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

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



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

Текущий архив: 2008.06.29;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.024 c
2-1212410997
zensan
2008-06-02 16:49
2008.06.29
Множественное наследование


2-1212397215
C_R_U_S_H
2008-06-02 13:00
2008.06.29
Ошибка при установлении соединия ADOConnection


15-1210759991
freezon
2008-05-14 14:13
2008.06.29
dxComponentPrinter и cxgrid


2-1212170826
VovKul
2008-05-30 22:07
2008.06.29
Как поместить шрифт в ресурс...


15-1210838747
Игорь М.
2008-05-15 12:05
2008.06.29
проблемы с видеотображением