左テーブルからいくつかの情報を取得し、条件に一致する右テーブルからすべての情報を取得するSQLクエリは、とにかく可能ですか? しかし、右の表の条件に一致するレコードが存在しない場合、それはまだ完全なレコードを示しているが、現時点では* NULL * sの右テーブル内で一致しないSQL右外部結合
の多くで満たされなければならない、私はこれに来ています
select
u.id, u.fullname,
r.*
from
users as u
right outer join
rapports as r
on
u.id = r.userid
where
u.active = 1
and (r.closed = 0 or CONVERT(varchar, r.periodstart, 112) = convert(varchar, GETDATE(), 112))
order by
u.fullname
しかし、に一致するレコードがrapports-table
にある場合は、user-table
のレコードしか表示されません。
これはどうしてですか?
あなたは左からテーブル(最初の)テーブルをしたい場合は、LEFT外部結合を使用する必要があります。論理的に考えるのは非常に直感的ではないので、実際には右外部結合をほとんど見ることはほとんどありません。私見では。 –
真実ですが、これでも問題は解決しません:( – Behrens