-1

可能重复:
不明确的列名错误

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

  1. 表 1:post_job

    job_id、emp_id、job_title

  2. 表 2:apply_job

    应用 ID、作业 ID、js_id、emp_id

  3. 表 3:jobskker_personal

    js_id,全名

我希望它看起来像这样:

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'.  

谁能帮帮我吗?。

4

4 回答 4

1

尝试在列名前面指定表名。这可能就是您的代码不知道在哪里查找的原因。

于 2012-05-16T20:05:54.263 回答
0

“歧义列”是指该列存在于多个表中。使用 [table name].[column name] 指定完整的列名,如下所示:

"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 + "' ";
于 2012-05-16T20:06:51.183 回答
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+"' "
于 2012-05-16T20:09:56.047 回答
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 问题。

于 2012-05-16T20:10:14.060 回答