Да, вы можете указать несколько car.id
s, получить car.name
и area.name
и вернуть их вместе.
Далее вы можете отсортировать ответ по car.id
, используя ORDER BY
. Я не знаю ни одного способа принудительно упорядочить порядок, основанный на порядке передачи в IDS, но вы легко могли бы отсортировать результаты в памяти очень быстро с помощью JavaScript.
Есть несколько способов сделать это в SQL: внутреннее объединение, полное объединение, отбор ... возможно, больше. Я продемонстрирую «внутреннее объединение», поскольку оно обычно наиболее эффективно, и некоторые планировщики SQL-запросов в любом случае преобразуют подвыборы во внутренние объединения.
Вы не указали, но при условии, что вы используете node-postgres
... вот ответ, когда carIds
уже определен как массив:
Внутреннее соединение
const query = `SELECT car.id, car.name, areas.name FROM car INNER JOIN area ON car.areaId WHERE car.id = ANY (${carIds}) ORDER BY car.id`
Наконец:
return pq.query(query, carIds)