Добавить в запрос поиск по связанной таблице

Есть две таблицы Order и Customer. В таблице Order есть поле idCustomer. В таблице Customer есть поле Name. Есть запрос который ищет по полям в таблице Order все совпадения

    @Query("SELECT * FROM `Order` WHERE dateCreate LIKE '%'||:query||'%' OR number LIKE '%'||:query||'%'" +
        " OR description LIKE '%'||:query||'%' OR address LIKE '%'||:query||'%' OR phone LIKE '%'||:query||'%'")
LiveData<List<Order>> getAllSearch(String query);

Вопрос, что нужно в этот запрос добавить, чтобы искало еще и по таблице Customer, а именно по полю Name?


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

Автор решения: Максим Фомичёв

В итоге с помощью ответов @Circassian пришел к такому рабочему варианту. Так как некоторые название полей в таблицах совпадали, переименовал их в таблице Customer.

SELECT *
FROM `Order`
LEFT JOIN
  (SELECT id AS idCust,
          name,
          phone AS phoneCust,
          description AS des
   FROM Customer) ON `Order`.idCustomer = idCust
WHERE number LIKE '%'||:query||'%'
  OR description LIKE '%'||:query||'%'
  OR address LIKE '%'||:query||'%'
  OR phone LIKE '%'||:query||'%'
  OR name LIKE '%'||:query||'%'
ORDER BY id DESC
→ Ссылка