首页 > 解决方案 > 我不希望某些条目出现在我的 postgresql 表中

问题描述

在此处输入图像描述

如上图所示,我不希望最后两个条目(即 facebook 和 twitter)显示在我的表格中,并且只想要一个具有用户 ID 的条目。我怎样才能避免这种情况。请不要介意我的词汇,因为我没有丰富的编程词汇。

我在数据库中使用此代码

SELECT users.id, EXTRACT(YEAR from AGE(users.dob)) AS Age, users.gender, users.nationality as Country, app.name AS App 
    FROM users
    FULL OUTER JOIN app_user_profile
        ON users.id = app_user_profile.users_id
    FULL OUTER JOIN app
        ON app_user_profile.app_id = app.id
ORDER BY users.id;

标签: postgresql

解决方案


而不是使用 FULL OUTER JOIN,你应该使用 LEFT OUTER JOIN 又名 LEFT JOIN,或者如果你真的想从users,app_user_profileapp关系中精确匹配,那么使用严格连接,INNER JOIN即 akaJOIN

试试这个

SELECT users.id,
       EXTRACT(YEAR
               FROM AGE(users.dob)) AS Age,
       users.gender,
       users.nationality AS Country,
       app.name AS App
FROM users
LEFT OUTER JOIN app_user_profile ON users.id = app_user_profile.users_id
LEFT OUTER JOIN app ON app_user_profile.app_id = app.id
ORDER BY users.id;

或者

SELECT users.id,
       EXTRACT(YEAR
               FROM AGE(users.dob)) AS Age,
       users.gender,
       users.nationality AS Country,
       app.name AS App
FROM users
INNER JOIN app_user_profile ON users.id = app_user_profile.users_id
INNER JOIN app ON app_user_profile.app_id = app.id
ORDER BY users.id;

推荐阅读