2011-12-18 20 views
0

我想查詢我的數據庫中未使用的listId的,但似乎無法使查詢語法正確。以下是我已經試過:需要幫助查詢關係表中未使用的ID

SELECT DISTINCT pkListId FROM tblList 
INNER JOIN InUseLists ON 
tblList.pkListId NOT LIKE InUseLists.fkListId 

凡tblList持有的所有列表數據,並且InUseLists是持有所有不同listId的從我的關係表的視圖。 目前我tblList持有listId 1-9

我的關係表已經fkListId 1,8,9(使用一次以上)

所以我認爲從關係表中獲得不同的值 - 1,8,9。

我的查詢語法有什麼問題?

+0

你會得到什麼錯誤信息? – 2011-12-18 06:18:04

回答

1

這聽起來像你想有一個left join(可成功與否找到一個匹配的「右」表),然後選擇那些行,其中的加入,其實沒有成功。

喜歡的東西:

SELECT DISTINCT pkListId FROM tblList 
LEFT JOIN InUseLists ON 
tblList.pkListId LIKE InUseLists.fkListId 
WHERE InUseLists.fkListId is null 

(如果LIKE這裏是正確的運營商大部分連接使用一個簡單的平等檢查)


如果這仍然是不正確的,它可能會更好如果您編輯了您的問題,以表格形式包含樣本數據和預期結果。目前,我仍不確定你的表格內容是什麼,以及你的目標是什麼。

+0

這是它謝謝你! – Lucas 2011-12-18 06:41:48

1

嘗試:

 
SELECT DISTINCT tblList.pkListId, FROM tblList, InUseLists WHERE 
tblList.pkListId NOT IN(InUseLists.fkListId) 
+0

與我所得到的效果類似 - 返回1-9。但是當我刪除NOT時它只返回1,8,9。我覺得我錯過了一些東西。 – Lucas 2011-12-18 06:24:18