如何在 asp.net 中加入 3 个表

本文关键字:个表 net asp | 更新日期: 2023-09-27 18:34:28

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

我想连接 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'.  

谁能帮我?

如何在 asp.net 中加入 3 个表

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

"不明确的列"表示该列存在于多个表中。 使用 [表名] 指定完整的列名。[列名],如下所示:

"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 + "' ";

前缀就是答案...您可以为表名设置别名,并在整个查询中引用它们,如下所示:

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+"' "

您需要 (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问题。