SQlite запрос выводит только одну строку

Есть две таблицы Profile - id, idOrder и т.д. и Order - id, idBatch и т.д. Задача вытянуть из таблицы Profile все данные по idOrder. Из данного запроса выводится только первый элемент по idBatch, хотя в таблице Order их много. Просьба помочь с запросом.

  @Query("SELECT * FROM Profile WHERE idOrder == (SELECT id FROM `Order` WHERE idBatch = :idBatch) ")
  Single<List<Profile>> getAllByIdBatch(long idBatch);

Дополнение - цель запроса: выбрать все записи из таблицы Profile, в которых поле idOrder соответствует полю id таблицы Order в которой поле IdBatch соответствует заданному значению getAllByIdBatch(long idBatch)


Ответы (1 шт):

Автор решения: Спицко Дмитрий

должно быть

SELECT * FROM Profile WHERE idOrder in (SELECT id FROM `Order` WHERE idBatch = :idBatch) 

Если использовать равенство, то он возьмет первую строку из подзапроса и будет сравнивать с ней. Вот вы и получили только одну строку в ответе

→ Ссылка