0

でクエリを作成しようとしていますoracle SQL。最初にプロファイルを編集しようとしているので、ユーザーが以前に選択した機関を変更したいのですが、そのためにはinstitution( id_institutionname_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';

しかし、私が得るのは彼が登録したデータだけであり、私はすべての機関が欲しいので、編集目的のためだけに選択したhtmlを埋めることができます

4

1 に答える 1

1

上記のクエリからすべての機関を返したい場合は、 を使用して、条件を にOUTER JOIN移動する必要があります。ただし、これは、探しているものではない可能性のある一致がないユーザー名フィールドのレコードを返します。WHEREJOINNULL

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';

おそらく、より簡単な代替ソリューションとして、2 つのクエリを実行するだけです。単一の select ステートメントからドロップダウン リストを作成しても問題ありません。

select name_institution 
from institution 
于 2013-06-02T04:00:53.273 に答える