0

我正在尝试在 中编写查询oracle SQL,首先我正在尝试编辑个人资料,因此我想更改用户之前选择的机构,但为此我必须从名为institution( id_institution, name_institution) 的表中获取所有机构,

select user.user_name, institution.name_institution from user 
inner join institution_has_user on user.id_user = institution_has_user.user_id_user 
inner join institution on institution_has_user.institution_id_institution = institution.id_institution  
where user = 'george';

但是我得到的只是他注册的数据,而且我要所有机构,所以我可以填写一个select html,仅用于编辑目的

4

1 回答 1

1

如果您想从上述查询中返回所有机构,那么您需要使用 anOUTER JOIN并将您的WHERE条件移动到您的JOIN. 但是,这将返回NULL用户名字段的记录,其中没有任何可能不是您要查找的匹配项:

select distinct user.user_name, institution.name_institution 
from institution 
    left join institution_has_user on institution_has_user.institution_id_institution = institution.id_institution 
    left join user on user.id_user = institution_has_user.user_id_user  
        and user.user_name = 'george';

也许是一个更简单的替代解决方案,只需运行两个查询——从单个 select 语句创建一个下拉列表应该是非常好的:

select name_institution 
from institution 
于 2013-06-02T04:00:53.273 回答