是否可以執行SQL查詢,從左表中獲取一些信息,並從右表中獲取匹配條件的所有信息。 但如果沒有記錄匹配的右表中的條件,應該還是顯示完整的記錄,但充斥着大量的* NULL * SSQL右外部連接在右表中沒有匹配
此刻,我得出這樣的:
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
但是這隻顯示user-table
的記錄,如果rapports-table
中有與WHERE
相匹配的記錄條件。
無論如何可能嗎?
如果你想從左邊的表(第一)表,你應該使用LEFT OUTER JOIN。我很少在實踐中看到正確的外連接,因爲它們在邏輯上考慮很不直觀。恕我直言。 –
是的,但這仍然不能解決問題:( – Behrens