postgresql:从多对多关系中检索数据

ozxc1zmp  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(473)

我需要一些帮助从n-m关系(n个项目处于m个状态)中检索数据。我写了下面的选择,没有错误,但结果是0行(实际上在法国有6个项目)。。。。

SELECT
    p.id_prj, p.title
FROM
    table_p p
JOIN
    table_ps ps ON p.id_prj = ps.id_project
JOIN
    table_s s ON s.st_code = ps.id_state
WHERE
    s.name = 'France'

表格包括:
表p(字段:id\u prj,title….)
表(字段:st代码、状态….)
表\u ps(字段:id\u project,id\u state)
每个表都有主键集。怎么了?少了什么?任何帮助都将不胜感激;—)

n8ghc7c1

n8ghc7c11#

仅从表\u p中选择,并使用where exists(…):

SELECT *
    -- p.id_prj, p.title
FROM table_p p
WHERE EXISTS (
        SELECT *
        FROM table_ps ps 
        JOIN table c ON c.st_code = ps.id_state AND c.name = 'France'
        WHERE ps.id_project = p.id_prj 
        );

相关问题