powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Merge, fk, много таблиц - сложно
14 сообщений из 14, страница 1 из 1
Merge, fk, много таблиц - сложно
    #39800562
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Необходимо реализовать процедуру изменения данных.
Почитал документацию - выбор пал на использование merge.
Но вот незадача - у этой таблицы 7 внешних ключей. Выборку то я сделал, а вот как реализовать изменения в ней данных - вопрос хороший
1) если использовать merge, то после using .. on прописывать через and все эти ключи(типа a.id = b.id_a and c.id=b.c_id - их будет 7 штук! - или это немного??)
2) может кто скинуть пример такого рода задачи, да бы я посмотрел реализацию, и сделал под свою
3) может тогда делать через update без merge?
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800568
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл, версия fb 2.5
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800571
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примеры есть в доке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800582
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,
Видел, но ничего они мне не дают
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800589
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дерзай, экспериментируй, щупай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800595
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

Если используется несколько таблиц для выборки, то merge самое оно. Можно ещё попробовать здесь показать свой вариант запроса через merge.
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800607
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,
Я как раз не могу построить запрос через merge, потому что у меня в using будет много таблиц, и если писать так:
Код: sql
1.
2.
3.
4.
Merge into a
Using (select * from b), (select * from c where c_name = 'abc')

On a.b_id = b.id and a.c_id = c.id


Я сомневаюсь, что так будет работать
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800608
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так ещё и надо брать данные не только из таблицы a
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800617
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метаданных нет, примера нет. Вопроса тоже нет. Тебе научиться или конкретную задачу решить разово?
Да мерж штуковина мощная и зело полезная, научиться ею орудовать посложнее, чем селектом, но тоже можно.

Что не осилил решить через мерж завсегда можно решить хранимкой.
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800650
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlepawkaKreatorXXI,
Я как раз не могу построить запрос через merge, потому что у меня в using будет много таблиц, и если писать так:
Код: sql
1.
2.
3.
4.
Merge into a
Using (select * from b), (select * from c where c_name = 'abc')

On a.b_id = b.id and a.c_id = c.id


Я сомневаюсь, что так будет работать

Это не конкретика. Под using надо писать select с join'ами. Типа так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
...
using ( select b.id1, c.id1
          from b
                 inner join c on c.id=b.id
       ) as q
on a.id1=q.id1 and a.id2=q.id2
...


Либо под using использовать union.
Примеры есть в настольной книге.
Упрости для начала задачу до двух-трёх таблиц, и дай пример, что хотелось бы.
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800691
Alepawka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,
Конкретрую задачу решить и все.
Есть таблица, как я уже сказал, с внешними ключами

table a
Table a(
Id
B_id,
C_id
D_id,
E_id,
Time,
F_id,
G_id
)

Как я уже сказал, сделал выборку, какие данные мне необходимо получить
select
Код: sql
1.
2.
3.
4.
5.
6.
Select d.name,f.name,c.surname||c.firstname,j.term,s.name, --и т.д.
from a as a join b on a.b_id 
Join bb(т.е. другая таблица, не связанная с а) as c on b.bb_id = c.id
Join g on g.id = a.g_id
Join d on d.id = a.id
-- и так join около 15




Я постарался объяснить свою задачу
Повторюсь
Необходимо сделать процедуру изменения данных, хочу сделать через merge.
Как лучше сделать?
Сложность в чем - есть внешние ключи в таблице A
Есть идея в процедуре получать данные, брать с тех таблиц id и поставлять в A.
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800703
Dmitry Kurbsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

При чём тут вообще внешние ключи? Чем они мешают?
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39800708
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlepawkaКак лучше сделать?можно процедурой, можно мерж-ем. В чем конкретно твой вопрос? где скрипт с исходными данными? где желаемый результат?
...
Рейтинг: 0 / 0
Merge, fk, много таблиц - сложно
    #39801708
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alepawka,

а какую таблицу мёржить надо?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Merge, fk, много таблиц - сложно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]