![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько 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]а чего нет? главное соблюдать синтаксис со вложенностями джойнов как в справке описано. (тут, в вопросе, он неправильный)