簡體   English   中英

SQL-不存在時不從另一個表中檢索記錄

[英]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 這將為您提供來自tblExampletblRatingnull的所有相關行,其中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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM