VB Asp.net将参数传递到子查询还是更好的解决方案?

VB Asp.net将参数传递到子查询还是更好的解决方案?,asp.net,sql,database,visual-studio-2010,ms-access,Asp.net,Sql,Database,Visual Studio 2010,Ms Access,环境:连接到Access数据库的Visual Basic Asp.net 好的,为我正在处理的数据库准备一个Select语句,我被难住了。希望你们中的一个人能想出一个解决办法 Laying out the problem: Table Name: CONTACTS Field: ContactID (primary key, autonumber) Field: UserName [this is being used to identify the user easily from Asp.n

环境:连接到Access数据库的Visual Basic Asp.net

好的,为我正在处理的数据库准备一个Select语句,我被难住了。希望你们中的一个人能想出一个解决办法

Laying out the problem:
Table Name: CONTACTS
Field: ContactID (primary key, autonumber)
Field: UserName [this is being used to identify the user easily from Asp.net]

Table Name: APPLICANT
Field: ContactID (primary foreign)
Field: JobID (primary foreign)

Table Name: JOB
Field: JobID (primary key, autonumber)
Field: Description
Field: Class
Field: Type
我需要的是他们没有申请的工作。当他们申请了一份工作时,它会通过申请人表中ContactID和JobID的组合键反映出来

我可以通过两个查询在Access中完成此操作:

SELECT Applicant.JobID
FROM Contacts INNER JOIN Applicant ON Contacts.[ContactID] = Applicant.[ContactID]
WHERE (((Contacts.UserName)='Test002'));

SELECT Job.JobID, Job.Description, Job.JobType, Job.JobClass
FROM Job LEFT JOIN [Applicant Query] ON Job.[JobID] = [Applicant Query].[JobID]
WHERE ((([Applicant Query].JobID) Is Null));
其中,[申请人查询]当然是指第一次查询

现在,由于用户名用于识别用户,因此必须将其包含在查询中,这就是难点所在。在VisualStudio中,我知道如何将参数传递给Select命令。但是,我似乎无法将参数传递给子查询。为了详细解释,“Test002”是我希望用参数替换的部分


我希望你们知道一个解决这个问题的方法,或者,如果不行,一个完全绕过这个问题的天才方法。提前感谢您的时间和帮助。

使用子查询将其合并到单个查询中如何?它看起来像这样:

SELECT Job.JobID, Job.Description, Job.JobType, Job.JobClass
FROM Job 
LEFT JOIN (
  SELECT Applicant.JobID
  FROM Contacts INNER JOIN Applicant ON Contacts.[ContactID] = Applicant.[ContactID]
  WHERE ((Contacts.UserName)='Test002')) AS subqry
ON Job.[JobID] = [subqry].[JobID]
WHERE (([subqry].JobID) Is Null));
这是相同的逻辑,只使用一个查询而不是两个查询