sql - 使用 like 的 PostgreSQL 子查询

标签 sql database postgresql select

假设我有第一张这样的 table

分支表

|name     |description|
|123456ABC|FOO        |
|553646DEF|FO2        |

第二张 table 是这样的

余额表

|name|description|
|ABC |oof        |
|DEF |2of        |

我想查询 Balance 表,其中每一行都包含 Branch 表中的名称.. 例如 Branch 表中的“123456ABC”,我想从 Balance 表中获取“ABC”行

我怎样才能做到这一点?到目前为止,我已经尝试过这个查询,但没有成功

select * from Balance
where name like (
        SELECT `name` FROM Branch
);

有什么建议吗?

最佳答案

您应该 balance 的名称转换为LIKE 模式:

SELECT * FROM Balance
WHERE (
    SELECT `name` FROM Branch
) LIKE '%' || name;

连接可能看起来更具可读性:

SELECT b.* FROM Balance b JOIN Branch r ON r.name LIKE '%' || b.name;

关于sql - 使用 like 的 PostgreSQL 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225313/

相关文章:

database - 没有 FROM 关键字的 Sparql

c# - CommandText 属性未正确初始化 (MySqlDataReader)

mysql - 在结果中使用 COUNT 条查询

c# - 如何使用 C# 从 Firebird 读取二进制 blob 到 byte[]?

mysql - 多列范围

MySQL 日期之间

SQL查询仅在存在重复项时按列过滤

android - 我应该如何为 Android 应用程序存储个人资料照片数据库/服务器端?

sql - Postgres 中的正则表达式 - 没有做我想做的事(新手问题)

mysql - SQL更新除属于特定表的记录之外的所有记录