Я пытаюсь написать запрос на объединение для поиска по определенной подстроке в определенном столбце
У меня есть 3 таблицы:
SELECT PE.* FROM SCHEMA.PERIPHERAL_TYPE AS PE
left JOIN SCHEMA.TENANT_PERIPHERAL_TYPE AS TPT ON (PE.PERIPHERAL_TYPE_ID = TPT.PERIPHERAL_TYPE_ID)
left JOIN SCHEMA.TENANT AS T ON (TPT.TENANT_ID = T.TENANT_ID)
where
LOWER(CAST (T.TENANT_NAME AS TEXT)) LIKE '%%'AND
LOWER(CAST (PE.PERIPHERAL_TYPE_ID AS TEXT)) LIKE '%%' AND
LOWER(CAST (PE.DEVICE_TYPE AS TEXT)) LIKE '%%' AND
LOWER(CAST (PE.PERIPHERAL_TYPE_NAME AS TEXT)) LIKE '%%' AND
LOWER(CAST (PE.PERIPHERAL_TYPE_BRAND AS TEXT)) LIKE '%%' AND
LOWER(CAST (PE.PERIPHERAL_TYPE_MODEL AS TEXT)) LIKE '%%' AND
LOWER(CAST (PE.PERIPHERAL_TYPE_DESC AS TEXT)) LIKE '%%' AND
TO_CHAR(PE.CREATED_DATE, 'YYYY-MM-DD HH24:MI:SS.MS') LIKE '%%' AND
TO_CHAR(PE.LAST_MODIFIED_DATE, 'YYYY-MM-DD HH24:MI:SS.MS') LIKE '%%' )
А вот мой БД:
TENANT TENANT_PERIPHERAL_TYPE PERIPHERAL_TYPE
====== ====================== ================
id: 1 name: ss [tenantId: 1, peripheral_type_id 1 ] [peripheral_type_id: 1, ...]
[peripheral_type_id: 2, ...]
[peripheral_type_id: 3, ...]
Этот запрос работает нормально, если я предоставлю значение для столбца TENANT_NAME , например %name%
. Я получаю только соответствующий peripheral types
.
Но когда я не предоставляю никакого значения (как вы видите в запросе выше), я получаю только записи, доступные в TENANT_PERIPHERAL_TYPE , но я хотел бы получить все значения с PERIPHERAL_TYPE
Что мне не хватает и как я могу решить мою проблему?
Спасибо!