sql - PostgreSQL 通过连接表中的子字符串查询返回部分值
问题描述
我正在尝试编写一个连接查询来通过某个子字符串搜索某个列
我有 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中获取所有值
我错过了什么,我该如何解决我的问题?
谢谢!
解决方案
推荐阅读
- java - 如何在多个活动和我的回收器适配器中使用方法
- visual-studio-code - 学校可以免费下载 Visual Studio Code 吗?
- c++ - 如何在VSCode上设置数据断点(即观察点)
- leaflet - 从外部 GeoJSON 导入传单标记
- c# - 在 Windows 10 C# 中更改 PC 名称
- angular - ng test = 很多“验证它是这个模块的一部分”错误
- authorization - 是否可以根据 IdP 断言属性值中断 OpenAM 中的身份验证/授权过程?
- pdf - 为什么此脚本会发送损坏的 PDF?
- javascript - 我在 react-useanimations 库上收到 TypeError,需要切换按钮
- python - 使用 audit_log 条目解禁不在特定服务器上工作的目标用户 - discord.py