PostgreSQL 三张表经字段处理后关联查询的实现方案
PostgreSQL 三表关联查询实现
你可以直接使用PostgreSQL内置的RIGHT()、TRIM()函数作为关联条件编写查询语句,示例如下:
-- 可根据实际需求调整SELECT后的返回字段 SELECT sp.store AS full_store_id, sp.spending, st.zip_code AS store_zip, cu.id AS customer_id FROM SPENDINGS sp -- 第一层关联:截取SPENDINGS.store后6位匹配STORE.store INNER JOIN STORE st ON RIGHT(sp.store, 6) = st.store -- 第二层关联:移除STORE.zip_code首尾空格后匹配CUSTOMER.zip_code INNER JOIN CUSTOMER cu ON TRIM(st.zip_code) = cu.zip_code;
注意事项
- 如果SPENDINGS表的store字段为数值类型,需要先转成文本再截取,关联条件调整为
RIGHT(sp.store::text, 6) = st.store即可 - 如果你需要保留所有消费记录(即使没有匹配的门店、客户信息),可以把
INNER JOIN替换为LEFT JOIN
内容的提问来源于stack exchange,提问作者Amirgiano
相关产品推荐
相关产品推荐

