2011-12-18 10 views
0

未使用のリストIDに対してデータベースを照会しようとしていますが、照会構文が正しく表示されないようです。ここで私が試したものです:未使用のIDをリレーショナルテーブルで照会する際に役立つ必要があります

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

tblListは、すべてのリストのデータを保持し、かつInUseListsどこリレーショナルテーブルからすべての異なるlistId年代を保持している図です。 1,8,9 - 現在、私のtblListはlistId 1-9

私のリレーショナルテーブルには、(複数回使用)fkListId 1,8,9

だから私の見解は、リレーショナルテーブルからの個別の値を取得するにはしてい成り立ちます。

クエリの構文にはどのような問題がありますか?

+0

どのようなエラーメッセージが表示されますか? –

答えて

1

それはで、参加それらの行を選択するために、あなたが(それが「右」の表に一致するものを見つけたかどうか成功することができます)left joinたいように聞こえる、と事実、動作しませんでした。

ような何か:(。LIKEがここに右の演算子であればほとんどの単純な等価性チェックを使用して参加する)

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


これはまだ権利ではない場合、それは良いかもしれませんサンプルデータと期待される結果を表形式で含めるように質問を編集した場合。現時点では、あなたのテーブルの内容が何であるか、あなたが目指しているものはまだ分かりません。

+0

これはありがとうございます! – Lucas

1

試してみてください。

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

私が持っていたものと同様の効果 - 1-9を返します。しかし私がNOTを取り除くと、それは1,8,9を返します。私は何かが欠けているように感じる。 – Lucas

関連する問題