[英]SQL - Not retrieving records from another table when they don't exist
我有此表( tblExample
):
ID U_ID Title Desc Cat SubCat Country Date
----------------------------------------------------------------------------
1 2 Title1 Desc1 Orange Blue England 12/05/2015
2 3 Title2 Desc2 Orange Blue England 12/05/2015
3 2 Title3 Desc2 Orange Blue England 12/05/2015
然后,我有另一個表( tblRating
):
ID U_ID rating
------------------
1 2 4
2 2 2
3 2 4
如果我執行以下SQL語句:
select e.*, r.*
from tblExample e
inner join tblRating r on e.U_ID = r.U_ID
我得到的結果只是U_ID = 2
的詳細信息,但我仍要顯示U_ID = 3
,這是在tblRating
沒有記錄的用戶。 我怎樣才能做到這一點? 我嘗試了left join
但是沒有用。
將inner join
替換為left join
。 這將為您提供來自tblExample
和tblRating
或null
的所有相關行,其中tblRating
確實具有匹配的行:
SELECT e.*, r.*
FROM tblExample e
LEFT JOIN tblRating r ON e.U_ID = r.U_ID
這是由於聯接問題,當您執行INNER JOIN時,僅返回兩個表中的匹配記錄。
如果要從第一個表中獲取所有記錄,而僅從第二個表中獲取匹配記錄,則需要執行LEFT JOIN 。
select
first.*,
second.*
from tblExample first
LEFT JOIN tblRating second on first.U_ID = second.U_ID
對於第二個表,如果條件不匹配,它將返回NULL。
您還可以參考有關JOINS之間區別的問題,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.