|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Имеется запрос с участием 2-х таблиц (метод Right Join). Нужно обновить записи где в левой таблице значения полей NULL(а в правой таблице значения 'этих же' полей не равны NULL).Через DAO.Recordset это можно реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 16:44 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyИмеется запрос с участием 2-х таблиц (метод Right Join). Нужно обновить записи где в левой таблице значения полей NULL(а в правой таблице значения 'этих же' полей не равны NULL).Через DAO.Recordset это можно реализовать? Что именно реализовать? "... обновить записи где в левой таблице значения полей NUL" ? Но этих записей просто нет, как можно обновить несуществующее? Или речь про добавление? Тогда можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 17:01 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
__MichelledraftyИмеется запрос с участием 2-х таблиц (метод Right Join). Нужно обновить записи где в левой таблице значения полей NULL(а в правой таблице значения 'этих же' полей не равны NULL).Через DAO.Recordset это можно реализовать? Что именно реализовать? "... обновить записи где в левой таблице значения полей NUL" ? Но этих записей просто нет, как можно обновить несуществующее? Или речь про добавление? Тогда можно. Да, действительно,там где в левой таблице значения null -этих записей просто нетути...(я как-то не подумал) Тогда другой вопрос,как мне обратиться к значению поля1 правой таблицы посредством Dao.recordset (запрос тот же) ,пишу: Set rst1=current db.openrecordset("Right Join") rst1.movefirst var1=rst1! KodSistemi Ругается компилятор на 'rst1! KodSistemi'...знаю что неправильно написал...короче мне надо получить значение поля1 правой таблицы посредством DAO там,где в правой значение этого же поя равно null ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 17:29 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
drafty__Michelleпропущено... Что именно реализовать? "... обновить записи где в левой таблице значения полей NUL" ? Но этих записей просто нет, как можно обновить несуществующее? Или речь про добавление? Тогда можно. Да, действительно,там где в левой таблице значения null -этих записей просто нетути...(я как-то не подумал) Тогда другой вопрос,как мне обратиться к значению поля1 правой таблицы посредством Dao.recordset (запрос тот же) ,пишу: Set rst1=current db.openrecordset("Right Join") rst1.movefirst var1=rst1! KodSistemi Ругается компилятор на 'rst1! KodSistemi'...знаю что неправильно написал...короче мне надо получить значение поля1 правой таблицы посредством DAO там,где в правой значение этого же поя равно null ...т.е. там,где значение левого поля равно null ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 17:31 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyИмеется запрос с участием 2-х таблиц (метод Right Join). Нужно обновить записи где в левой таблице значения полей NULL(а в правой таблице значения 'этих же' полей не равны NULL).Через DAO.Recordset это можно реализовать? При связке RIGHT JOIN можно обновить только поля относящиеся к подчиненной таблице . (в аксеcовском jet SQL) При связке LEFT JOIN можно обновить поля как из главной ,так и из подчиненной таблице . ( в аксеcовском jet SQL) Как руками обновить, так и в DAO,ADO. В обеих случаях это хреновая затея, так как если в общем аксесовском "запросе" больше чем две таблицы, обновление может привести к неожиданным результатам. (К примеру создание новых значений для ключевых полей главной таблицы, которые вообще не имеют право на существование в структуре данных.) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 19:22 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей ЛаловdraftyИмеется запрос с участием 2-х таблиц (метод Right Join). Нужно обновить записи где в левой таблице значения полей NULL(а в правой таблице значения 'этих же' полей не равны NULL).Через DAO.Recordset это можно реализовать? При связке RIGHT JOIN можно обновить только поля относящиеся к подчиненной таблице . (в аксеcовском jet SQL) При связке LEFT JOIN можно обновить поля как из главной ,так и из подчиненной таблице . ( в аксеcовском jet SQL) Как руками обновить, так и в DAO,ADO. В обеих случаях это хреновая затея, так как если в общем аксесовском "запросе" больше чем две таблицы, обновление может привести к неожиданным результатам. (К примеру создание новых значений для ключевых полей главной таблицы, которые вообще не имеют право на существование в структуре данных.) По контексту видно-специалист! ☺️ Тогда вопрос вот какой-если я в DAO.Recordset объектом у меня может быть 1таблица или инструкция SQL(что может быть и запрос) и обращение к полю примерно такое With rst !Поле1 ... то как тогда мне обратиться к полям этого вышеоговоренного запроса Right Join ведь там 2 таблицы?🤔🤔🤔 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:03 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyТогда вопрос вот какой-если я в DAO.Recordset объектом у меня может быть 1таблица или инструкция SQL(что может быть и запрос) и обращение к полю примерно такое With rst !Поле1 ... то как тогда мне обратиться к полям этого вышеоговоренного запроса Right Join ведь там 2 таблицы?🤔🤔🤔 В смысле как?) Как к одному объекту /сборке внутри этого запроса, который использует связь RIGHT JOIN. К примеру у вас есть запрос с RIGHT JOIN, который находится в: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:22 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
И надо понимать, что обновляем мы в данном примере одну запись. Первую в таблице. Мало ли...) Если какую то конкретную запись нужно, то придется циклом по рекордсету побегать и найти нужную. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:32 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
PS. И если у вас будет связь между таблицами в запросе по обычным- неиндексируемым/не ключевым, то такой запрос (точней объект - рекордсет) вообще не будет обновляемым, ни при RIGHT JOIN, ни при LEFT JOIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:40 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
PS.2 На вопрос почему так происходит (не обновляется) вам уже ответила _michelle ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:46 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей ЛаловdraftyТогда вопрос вот какой-если я в DAO.Recordset объектом у меня может быть 1таблица или инструкция SQL(что может быть и запрос) и обращение к полю примерно такое With rst !Поле1 ... то как тогда мне обратиться к полям этого вышеоговоренного запроса Right Join ведь там 2 таблицы?🤔🤔🤔 В смысле как?) Как к одному объекту /сборке внутри этого запроса, который использует связь RIGHT JOIN. К примеру у вас есть запрос с RIGHT JOIN, который находится в: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Т.е. та таблица которая "слева"(по логике диаграмм Эйлера-Венна) считается главной всегда ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 21:55 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей ЛаловdraftyТогда вопрос вот какой-если я в DAO.Recordset объектом у меня может быть 1таблица или инструкция SQL(что может быть и запрос) и обращение к полю примерно такое With rst !Поле1 ... то как тогда мне обратиться к полям этого вышеоговоренного запроса Right Join ведь там 2 таблицы?🤔🤔🤔 В смысле как?) Как к одному объекту /сборке внутри этого запроса, который использует связь RIGHT JOIN. К примеру у вас есть запрос с RIGHT JOIN, который находится в: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А если у меня название полей во всех таблицах совпадают,тогда rs![Поле1] вызывает по идее в любом случае ошибку,потому что и в главной и в подчиненной таблице есть это поле и как тогда понять к какому полю происходит обращение??? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:00 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyТ.е. та таблица которая "слева"(по логике диаграмм Эйлера-Венна) считается главной всегда ? Охтыжь, а я то с немытыми руками в ваш топик)) В последний раз касался множеств лет этак 20 назад, курсе на втором. Главная таблица по логике разработчиков майкрософт в аксессе та, в которой на один первичный ключ приходится множество внешних ключей в другой. И то правило применимо относительно именно этих двух таблиц. Потому что может существовать третья таблица, которая связана со второй как подчиненная , но по отношению к первой выступать как главная. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:13 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
drafty, Если у вас в главной и подчиненной таблице есть одинаковое поле , то как один из вариантов - можно для какого то из них в тексте запроса создать псевдоним: SELECT..,[поле] AS НовоеИмяПоля ,[другое поле],...FROM... и потом в рекордсете обратиться по псевдониму: rs![НовоеИмяПоля]="значение" ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:22 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей Лаловdrafty, Если у вас в главной и подчиненной таблице есть одинаковое поле , то как один из вариантов - можно для какого то из них в тексте запроса создать псевдоним: SELECT..,[поле] AS НовоеИмяПоля ,[другое поле],...FROM... и потом в рекордсете обратиться по псевдониму: rs![НовоеИмяПоля]="значение" Окэ,я конечно попробую последовать вашему совету,но что-то мне подсказывает,что не хватает ещё какого то нюанса.По результату отпишусь ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:42 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей Лалов... Главная таблица по логике разработчиков майкрософт в аксессе та,... "По логике разработчиков майкрософт" (с) понятия "главная таблица" не существует. Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:44 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей ЛаловdraftyТ.е. та таблица которая "слева"(по логике диаграмм Эйлера-Венна) считается главной всегда ? Охтыжь, а я то с немытыми руками в ваш топик)) В последний раз касался множеств лет этак 20 назад, курсе на втором. Главная таблица по логике разработчиков майкрософт в аксессе та, в которой на один первичный ключ приходится множество внешних ключей в другой. И то правило применимо относительно именно этих двух таблиц. Потому что может существовать третья таблица, которая связана со второй как подчиненная , но по отношению к первой выступать как главная. Я спросил про определение ГЛАВНАЯ применительно к запросу Right Join,а не вообще про принципы построения БД.Поэтому и спросил, что если в этом запросе поля равнозначны (т.е. оба в статусе PK) все-равно главной будет левая таблица? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:49 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Predeclared, Регламентного термина или объекта какого то отдельного не встречал в скрижалях MS ,не спорю) Подтаблица (или по другому "внедренная таблица") есть, и то в другом контексте, не по теме топика. Главную не видел)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:53 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Сергей Лалов... не встречал в скрижалях MS ... ОК. Я было подумал в новых версиях появилось вдруг. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 22:59 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
PredeclaredСергей Лалов... не встречал в скрижалях MS ... ОК. Я было подумал в новых версиях появилось вдруг. в новых версиях появился новый тип данных для аксесса - bigint, у кого то наверху наверное появилась наконец возможность вести в аксессе учет поступления своей заработной платы) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 23:11 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyЯ спросил про определение ГЛАВНАЯ применительно к запросу Right Join,а не вообще про принципы построения БД.Поэтому и спросил, что если в этом запросе поля равнозначны (т.е. оба в статусе PK) все-равно главной будет левая таблица? JOIN (INNER,OUT,LEFT,RIGHT) это не запрос, а оператор в запросе. Оператор соединения, как раз тех самых упомянутых вами множеств, которые как раз составляют данные, хранящиеся в таблице. С определенными правилами вывода значений. Вы упомянули что у вас два связь через два равнозначных primary key. Вышлите пожалуйста образец базы, достаточно образец с таблицами и связями,с которыми у вас возникают проблемы при обновлении рекордсета, скажите что хотите иметь на выходе , мы посмотрим ,что вы там натворили и поможем решить задачку, если она вообще решаема. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 23:26 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
[quot Сергей Лалов]draftyЯ спросил про определение ГЛАВНАЯ применительно к запросу Right Join,а не вообще про принципы построения БД.Поэтому и спросил, что если в этом запросе поля равнозначны (т.е. оба в статусе PK) все-равно главной будет левая таблица? JOIN (INNER,OUT,LEFT,RIGHT) это не запрос, а оператор в запросе. Оператор соединения, как раз тех самых упомянутых вами множеств, которые как раз составляют данные, хранящиеся в таблице. С определенными правилами вывода значений. Вы упомянули что у вас два связь через два равнозначных primary key. Вышлите пожалуйста образец базы, достаточно образец с таблицами и связями,с которыми у вас возникают проблемы при обновлении рекордсета, скажите что хотите иметь на выходе , мы посмотрим ,что вы там натворили и поможем решить задачку, если она вообще решаема.[/quot Нет,об обновлении рекордсета речи уже нет,достаточно просто "прочитать" значения полей участвующих в запросе... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 06:33 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
draftyСергей Лаловdrafty, Если у вас в главной и подчиненной таблице есть одинаковое поле , то как один из вариантов - можно для какого то из них в тексте запроса создать псевдоним: SELECT..,[поле] AS НовоеИмяПоля ,[другое поле],...FROM... и потом в рекордсете обратиться по псевдониму: rs![НовоеИмяПоля]="значение" Окэ,я конечно попробую последовать вашему совету,но что-то мне подсказывает,что не хватает ещё какого то нюанса.По результату отпишусь Да, только что протестировал.Использование псевдонима-хороший выход из положения...А самое главное-действительно, посредством DAO.Recordset можно получить значение поля запроса Right Join(я почему-то думал что DAO.Recordset не работает там,где таблиц более одной). Благодарю за советы! ✋✋✋ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 08:31 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
Посмотрел топик и ничего не понял. -левой и правой таблицы станут после их объединения 1:М еще на этапе их создания -как понимать выражение: "значения 'этих же' полей" (зачем в двух таблицах "эти же" поля?) -какую,конкретно, задачу Вы решаете -рекордсет работает если таблиц несколько ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 10:51 |
|
Right Join можно ли обработать посредством DAO?
|
|||
---|---|---|---|
#18+
sdkuПосмотрел топик и ничего не понял. -левой и правой таблицы станут после их объединения 1:М еще на этапе их создания -как понимать выражение: "значения 'этих же' полей" (зачем в двух таблицах "эти же" поля?) -какую,конкретно, задачу Вы решаете -рекордсет работает если таблиц несколько Вопрос был в том,что надо было сверить 2 одинаковые по структуре таблицы и выявить отсутствующие записи в одной из них на основании другой посредством Поэтому я и вписал фразу про 'значения этих же полей'(т.е. одинаковых по типу данных,длине символов и названию поля) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 16:42 |
|
|
start [/forum/topic.php?fid=45&msg=39863625&tid=1610471]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 455ms |
0 / 0 |