Ваш ORDER BY находится внутри вашей выборки и поэтому бесполезен для окончательного порядка результатов, но вызывает вашу ошибку.
Переместите его за пределы выборки.
SELECT id
FROM institute
WHERE member_id IN
( SELECT id
FROM MEMBER
WHERE id IN ( 765, 769, 753, 774, 778, 779, 781, 790,
799, 809, 820, 823, 855, 835, 839, 842,
845, 849, 850, 851 )
)
ORDER BY name ASC
Примечание: IМожно только предположить, что name
является столбцом в таблице institute
, так как в противном случае ORDER BY
будет полностью избыточным.Поэтому следует упорядочить основной SELECT
.
или полностью удалить его ...
SELECT id
FROM institute
WHERE member_id IN
( SELECT id
FROM MEMBER
WHERE id IN ( 765, 769, 753, 774, 778, 779, 781, 790,
799, 809, 820, 823, 855, 835, 839, 842,
845, 849, 850, 851 )
)
Не будет ли этот запрос более эффективным?
SELECT i.id
FROM institute i
INNER JOIN member m
ON (i.member_id = m.id)
WHERE m.id IN ( 765, 769, 753, 774, 778, 779, 781, 790,
799, 809, 820, 823, 855, 835, 839, 842,
845, 849, 850, 851 )