0

所以我有一个包含消息和 thread_id 的表(t1)。每个线程 ID 对应一个会话。我对消息中的术语运行查询,现在我想根据对消息的查询结果重新查询 t1。我不能做一个嵌套的,因为最终结果应该来自原始的 t1。重述:我想要所有包含某些单词的对话。这是在 postgresql 9.1 中。

4

1 回答 1

1

这将适用于Common Table Experssions,从版本 8.4 及更高版本开始提供:

create table test_table1 (id serial, val1 integer, val2 text);
insert into test_table1 (val1, val2)
select
    v, 'test data ' || v
from generate_series(1,10000);


WITH
    t1 (id, val1, val2)
    as (
        select
            id, val1, val2
        from test_table1
        order by id asc
        limit 1000
    )

    ,t1_condition (id, condition)
    as (
        select
            id, val1 % 5 = 0
        from t1
        where val1 % 3 = 0
    )


select 
    t1.id, t1.val1, t1.val2,
    t1_condition.condition
from t1
left join t1_condition
on t1.id = t1_condition.id
于 2013-10-25T18:43:19.050 回答