【问题标题】:How to conditionally select properties of a table in PostgreSQL如何有条件地选择 PostgreSQL 中表的属性
【发布时间】:2015-11-25 11:12:51
【问题描述】:

我从 PostgreSQL 开始,找不到任何对我有用的东西,这里是:

我有几个表,主表有一个名为“is_thing”的属性,它存储一个布尔值。如果为真,我想从表“thing”中选择一些其他属性,如果“is_thing”为假,则可能为空。我不知道该怎么做(我不想将它拆分为不同的嵌套查询)。如果“is_thing”为真,我正在使用的查询返回所有内容。但如果它是假的,则绝对不会返回任何内容。在这些情况下,我仍然想要主表属性。

这是我的查询示例:

SELECT
    m.id
    , m.is_thing
    , m.color
    , t.volume
    , t.age
FROM
    main m
    JOIN
        thing t
        ON
            t.id = m.id
WHERE
    m.id = 1234

对不起,我的英语不好,这不是我的第一语言。

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    你可能需要LEFT JOIN:

    SELECT
        m.id
        , m.is_thing
        , m.color
        , t.volume
        , t.age
    FROM main m
    LEFT JOIN thing t
    ON t.id = m.id
    WHERE m.id = 1234;
    

    【讨论】:

    • 完美运行,不敢相信它这么简单。非常感谢。
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2019-07-31
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多