Форум: "Базы";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизНесколько 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c