2015-07-12 15 views
-1

我想要一個顯示所有作業(EmpNo,JobNo,JobName)的查詢一個候選DID不適用於(意味着該作業或者不存在於tblJobApplications中,或者存在,但該用戶不適用於它)。當前候選人的ID作爲返回字符串的Get_Login()存儲在模塊中。 (多個候選人可以應用於單個作業,因此如果其中一行包含候選人的ID,整個作業的行將從結果中丟棄)。SQL:顯示或者不存在於另一個表中的元素,或者存在但沒有在其中一列中具有特定值的行的元素

給出:

tblJobs: 
* EmpNo (long) 
* JobNo (long) 
    JobName (string) 

tblJobApplications: 
* EmpNo (long) 
* JobNo (long) 
* Id_candidate (string) 

public function Get_Login() as String (returns current user's id) 

例如:

tblJobs: 
1, 1, Coach 
1, 2, Trainer 
2, 3, Gardner 

tblJobApplications: 
1, 2, currentuser 
1, 2, 23917283 
2, 3, 94718233 

in this situation, the result should show: 
1, 1, Coach 
2, 3, Gardner 

我的SQL知識在這一點上是非常有限的。 我在想,首先我應該做一個查詢,獲取所有當前用戶的工作應用程序(以獲得EmpNo,JobNo的我應該丟棄),並以某種方式從顯示所有工作的簡單查詢的結果中刪除它們。

+0

你真的應該包括什麼你嘗試更多的信息,什麼是你有問題。一些樣品數據和結果 – Luc

回答

1

如果我理解正確的數據結構,那麼not exists查詢應該工作:

select j.* 
from tbljobs as j 
where not exists (select 1 
        from tblApplications as a 
        where a.jobNo = j.jobNo and 
         a.id_candidate = get_login() 
       ); 
+0

非常感謝你!幫了我很多......你忘了其他EmpNo的關鍵在哪裏......並最終需要一羣人。但非常接近您所寫的內容。 – ckid

相關問題