Добавить в запрос поиск по связанной таблице
Есть две таблицы 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