как поддерживать порядок при объединении в sql

Таблица 1 и таблица 2 имеют одинаковые первичные ключи (key1, key2). Таблица 3 - это определяемая пользователем таблица с одним столбцом field5, общим для table2. Мне нужно выбрать строки из таблицы 1 и таблицы 2, где field5 в table2 находится в table3. Мне нужно получить строки в том же порядке, что и в таблице 3.

таблица 1

ключ1 ключ2 поле1 поле2

таблица 2

ключ1 ключ2 поле3 поле4 поле5

определяемая пользователем таблица

поле5

я думаю, запрос

select a.key1, a.key2, a.field1, a.field2, b.field3, b.field4
from table1 as a INNER JOIN table2 as b ON a.key1 = b.key1 AND a.key2 = b.key2
where b.field5 in (select field5 from table3)

не даст мне строк в том же порядке, что и в таблице 3.

Мне нужно что-то подобное для поддержания порядка?

select a.key1, a.key2, a.field1, a.field2, d.field3, d.field4 from
table1 as a INNER JOIN
 (select b.key1, b.key2, b.field3, b.field4
  from table2 as b INNER JOIN table3 as c
  ON b.field5 = c.field5) as d
WHERE a.key1 = d.key1 AND a.key2 = d.key2
9
задан S.Lott 21 April 2011 в 11:24
поделиться