如上图所示,我不希望最后两个条目(即 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;
答案 0 :(得分:2)
您应该使用 LEFT OUTER JOIN 又名 LEFT JOIN,而不是使用 FULL OUTER JOIN,或者如果您真的想从 users
、app_user_profile
和 app
关系中精确匹配,请使用严格加入 i,e INNER JOIN
又名 JOIN
试试这个
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;