Сортировка по результатам подзапроса

Brand
Дата: 09.02.2001 02:18:26
Есть запрос примерно такого вида:
select * from table1 where field1 in (select field1 from table2 order by field2)

Подзапрос возвращает значения в определенном порядке, отсортированные по field2. Как сделать так чтобы основной запрос тоже выводил значения отсортированные по результатам подзапроса? Эм.. немного туманно получилось в общем если подзапрос вернет "5", "1", "3" - то нужно чтобы и основной запрос выводил сначала те строки в которых field1=5 потом, field1=1 и наконец field1=3
Дед Маздай
Дата: 09.02.2001 08:56:43
Имеем 2 таблицы: table1 (id, field1) и table2 (id, field2). Поле id в обеих identity и primary key. Колонка field1 = {1, 2, 3, 4, 5}; колонка field2 = {5, 1, 3}. Тогда твой запрос нужно переписать как select table1.id, field1 from table1 inner join table2 on field1 = field2 order by table2.id
SergSuper
Дата: 09.02.2001 09:35:43
хотел бы добавить

В общем случае эта задача не решаема в принципе - ведь полю field1 в таблице table2 может соответствовать несколько и наоборот. И какое field2 тогда использовать для сортировки?
VadimB
Дата: 09.02.2001 11:08:11
может для общего случая можно так:

select distinct
table1.id, table1.field1
from table1,table2
where table1.field1 *= table2.field1
order by table2.id
Brand
Дата: 09.02.2001 17:33:51
Для моего случая получилось так:
select * from table1 order by
(select sum(field2) from table2 where table2.field1 = table1.field1)

Напрягает только время выполнения.. :|

p.s. Да да, мне надо было сортировать именно по сумме
Garya
Дата: 09.02.2001 18:44:01
SELECT T1.*
FROM Table1 T1 INNER JOIN
(SELECT Field1, SUM(Field2) AS SM
FROM Table2 GROUP BY Field1) T2
ON T1.Field1 = T2.Field1
ORDER BY T2.SM
Brand
Дата: 09.02.2001 23:52:49
Garya, а вот твой вариант просто летает
Thanks