powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить первую запись из detail
5 сообщений из 5, страница 1 из 1
Получить первую запись из detail
    #39315762
den9000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы, связанные как master-detail. Например:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table Tab1(
 ID NUMBER(10) PRIMARY KEY,
 T1FIELD1 VARCHAR2(10)
);

create table Tab2(
  ID NUMBER(10) PRIMARY KEY,
  TAB1_ID NUMBER(10) NOT NULL,
  T2FIELD1 VARCHAR2(10),
  T2FIELD2 VARCHAR2(10)
);

ALTER TABLE Tab2
ADD CONSTRAINT FK_Tab1_Tab2 FOREIGN KEY (TAB1_ID)
REFERENCES Tab1 (ID) ON DELETE CASCADE;



Нужно запросом получить записи из первой таблицы и для каждой записи из первой таблицы получить первую запись из второй таблицы. Т.е. получить таблицу типа:
Tab1.T1FIELD1 Tab2.T2FIELD1 Tab2.T2FIELD2

Вопрос - в следующем запросе можно ли гарантировать, что в первом и во втором подзапросе будет один и тот же порядок сортировки. Т.е. что всегда в каждой результирующей записи T2FIELD2 будет из той же записи таблицы Tab2, что и T1FIELD1?

Код: plsql
1.
2.
3.
4.
5.
6.
select t1.T1FIELD1,
(select t2.T2FIELD1 from Tab2 t2
where t2.TAB1_ID=t1.ID and rownum<=1) T2FIELD1,
(select t2.T2FIELD2 from Tab2 t2
where t2.TAB1_ID=t1.ID and rownum<=1) T2FIELD2,
from Tab1 t1
...
Рейтинг: 0 / 0
Получить первую запись из detail
    #39315766
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
den9000что в первом и во втором подзапросе будет один и тот же порядок сортировки
а где здесь сортировка ?
...
Рейтинг: 0 / 0
Получить первую запись из detail
    #39315775
den9000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййden9000что в первом и во втором подзапросе будет один и тот же порядок сортировки
а где здесь сортировка ?
Наверное, я не понятно выразился. Я имел в виду, что вот эти два селекта для каждой строки будут возвращать данные из одной и той же записи.

Код: plsql
1.
2.
3.
4.
5.
(select t2.T2FIELD1 from Tab2 t2
where t2.TAB1_ID=t1.ID and rownum<=1) T2FIELD1,

(select t2.T2FIELD2 from Tab2 t2
where t2.TAB1_ID=t1.ID and rownum<=1) T2FIELD2,
...
Рейтинг: 0 / 0
Получить первую запись из detail
    #39315820
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
den9000Вопрос - в следующем запросе можно ли гарантировать, что в первом и во втором подзапросе будет один и тот же порядок сортировки. Т.е. что всегда в каждой результирующей записи T2FIELD2 будет из той же записи таблицы Tab2, что и T1FIELD1?

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

зы
на практике я не встречал чтоб из разных строк

.....
stax
...
Рейтинг: 0 / 0
Получить первую запись из detail
    #39315856
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить первую запись из detail
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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