PostgreSQL 子查询使用 like

the*_*ays 5 sql database postgresql select

假设我有这样的第一张桌子

分支表

|name     |description|
|123456ABC|FOO        |
|553646DEF|FO2        |
Run Code Online (Sandbox Code Playgroud)

和第二张桌子这样

余额表

|name|description|
|ABC |oof        |
|DEF |2of        |
Run Code Online (Sandbox Code Playgroud)

我想查询余额表,其中每一行都包含分支表中的名称。例如,分支表中的“123456ABC”,我想从余额表中获取“ABC”行

我怎么能做到这一点?到目前为止,我已经尝试过这个查询,但没有运气

select * from Balance
where name like (
        SELECT `name` FROM Branch
);
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

cle*_*ens 6

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

SELECT * FROM Balance
WHERE (
    SELECT `name` FROM Branch
) LIKE '%' || name;
Run Code Online (Sandbox Code Playgroud)

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

SELECT b.* FROM Balance b JOIN Branch r ON r.name LIKE '%' || b.name;
Run Code Online (Sandbox Code Playgroud)