2009-02-10 72 views
3

選擇行有了這個表SQL - 從兩個不同的表

Table "Items" 

itemID 
itemTitle 
itemContent 

Table "MyList" 

userID 
itemID 
deleted 

我如何從表「項目」選擇所有的行和顯示領域的「刪除」,甚至如果itemID不存在於「MyList」中,給定一個用戶ID?查詢結果的

例子:

itemID | itemTitle | deleted | userID 
------------------------------------- 
1  | Title1 | 1  | 2 
2  | Title2 | 0  | 2 
3  | Title3 | (null) | (null) 
4  | Title4 | (null) | (null) 

什麼是查詢,這樣我就可以得到這一結果?

感謝

回答

0

我不知道這是否是最好的這樣做的方式,但它返回我正在尋找:

select itemID, itemTitle, deleted, userID 
FROM(
SELECT i.id_itemID, i.itemTitle, M.deleted, M.userID 
FROM 
    MyList M 
    right OUTER JOIN Items I ON I.itemID= M.itemID 
) as MyTableItems 
where itemID = 3 or itemID is null 
15
SELECT I.itemID, I.itemTitle, M.deleted 
FROM 
    Items I 
    LEFT OUTER JOIN MyList M ON M.itemID = I.itemID 
WHERE M.userID = 9 

編輯:基於OP的評論:

SELECT I.itemID, I.itemTitle, M.deleted, M.userID 
FROM 
    MyList M 
    LEFT OUTER JOIN Items I ON I.itemID = M.itemID 
WHERE M.userID = 9 
0

您可以使用outer join

select a.itemId, a.itemTitle, b.deleted 
from Items a left outer join MyList b 
on a.itemId = b.itemId