PostgreSQL Запрос по подстроке в таблице соединений возвращает частичные значения - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь написать запрос на объединение для поиска по определенной подстроке в определенном столбце

У меня есть 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

Что мне не хватает и как я могу решить мою проблему?

Спасибо!

...