2012-05-16 36 views
-1

Possible Duplicate:
Ambiguous column name error如何在asp.net中加入3表?

我想加入3个表格:post_job,apply_job和employer_detail。

  1. 表1:post_job

    JOB_ID,EMP_ID,JOB_TITLE

  2. 表2:apply_job

    applied_id,JOB_ID,js_id,emp_id为

  3. 表3:jobskker_personal

    js_id,full_name

我希望它看起来像这样:

job_id, job_title, full_name 

我写了一个这样的查询:

"SELECT job_id,job_title,post_date ,full_name " + "FROM post_job,applied_jobs,jobseeker_personal WHERE emp_id='"+emp_id+"' ";

它显示了一个错误:

Ambiguous column name 'emp_id'. 
Ambiguous column name 'job_id'. 
Ambiguous column name 'job_title'. 

可以请帮助我吗?

+0

http://stackoverflow.com/a/318089/284240 –

+0

请考虑将此问题标记为已回答。 –

回答

1

尝试在列名前面指定表名。这可能就是为什么你的代码不知道在哪里看。

0

“不明确的列”表示该列存在于多个表中。 。使用[表名] [列名]指定完整的列名,就像这样:

"SELECT post_job.job_id, post_job.job_title, post_date, full_name " + "FROM 
    post_job, applied_jobs, jobseeker_personal WHERE post_job.emp_id='" + emp_id + "' "; 
0

加前缀是答案...你可以别名你的表名,并引用它们在整个查询,如下所示:

SELECT 
    pj.job_id, pj.job_title, pj.post_date, jp.full_name 
FROM 
    post_job pj, applied_jobs aj, jobseeker_personal jp 
WHERE 
    emp_id='"+emp_id+"' " 
0

您需要(a)编写连接条件,以及(b)将表标识符添加到发生在多个表中的字段名称中。

在这种情况下,我猜你想要说的是一样的东西:

select p.job_id, p.job_title, s.full_name 
FROM post_job p 
join applied_jobs a on a.job_id=p.job_id 
join jobseeker_personal s on s.js_id=a.js_id 
WHERE a.emp_id=? 

旁注:你的问题无关,与ASP.NET。这是一个SQL问题。