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

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

SQL ; (СУБД - Access)


Silver_ ©   (2003-04-03 10:35:00) 

на этот запрос (t1 - мастер; t2, t3 - подробные)

SELECT t1.*
FROM tbl1 t1 INNER JOIN tbl2 t2 ON t1.fld1 = t2.fld1
INNER JOIN tbl3 T3 ON t1.fld2 = t3.fld1


такое вот ругательство
Sintax Error (missing operator) in query expression "t1.fld1 = t2.fld1
INNER JOIN Tbl3 T3 ON t1.fld2 = t3.fld1"

причем не выдает ошибки при следующем запросе:
SELECT t1.*
FROM tbl1 t1 INNER JOIN Tbl2 t2 ON t1.fld1 = t2.fld1 ,
tbl1 t4 INNER JOIN Tbl3 T3 ON t4 .fld2 = t3.fld1

второй вариант "плохо" выглядит, складывается ощущение что tbl1 открывается по одному разу для каждой подробной

Вопрос: Это СУБД такая, или может я чё не так делаю. А может опасения мои напрасны
и еще по простомув чем разница между
INNER JOIN, LEFT OUGHTER JOIN, RIGHT OUGHTER JOIN


sniknik   (2003-04-03 15:32:00) [1]

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


Silver_   (2003-04-03 15:16:00) [2]

ну не на стока коротко :))


> где не все там меняется


это как??


sniknik   (2003-04-03 15:03:00) [3]

непонятно? зато коротко!


sniknik   (2003-04-03 15:02:00) [4]

LEFT - слева все
RIGHT - справа все
где не все там меняется


Silver_   (2003-04-03 14:45:00) [5]


> sniknik © (03.04.03 10:49)

на счет вложености уже кое-что...

хотел КОРОТКО :) узнать в чем разниця между LEFT и RIGHT


Johnmen   (2003-04-03 10:50:00) [6]

С точки зрения синтаксиса, описанного в стандарте SQL92, запрос корректен. Если возникает ошибка, то это, видимо, специфика Аксеса...
Попробуй причесать бардак с регистром :)
Попробуй указыват односимвольные псевдонимы...
Попробуй ... что-нибудь еще ...:)))


sniknik   (2003-04-03 10:49:00) [7]

хелп
раздел "Операция INNER JOIN"
файл JETSQL40.CHM на компе с установленым офисом
+ рекомендуется раздел "Операции LEFT JOIN, RIGHT JOIN", "Инструкция SELECT"
(короче сам разбирайся :о)))

.....
Операции JOIN могут быть вложенными; в таком случае используйте следующий синтаксис:

SELECT поля
FROM таблица_1 INNER JOIN
(таблица_2 INNER JOIN [( ]таблица_3
[INNER JOIN [( ]таблица_X [INNER JOIN ...)]
ON таблица_3.поле_3 оператор таблица_X.поле_X)]
ON таблица_2.поле_2 оператор таблица_3.поле_3)
ON таблица_1.поле_1 оператор таблица_2.поле_2;

Операции LEFT JOIN или RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в LEFT JOIN или RIGHT JOIN.



Silver_   (2003-04-03 10:41:00) [8]

как к t1 - мастер; привентить t2, t3 - подробные
- первый пример ругается
- второй пример неправельно


Наверх

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