1

我有 3 张桌子。

首先是公司表:Company_ID, Company_name

第二个是工作表:JOB_ID, Job_Name, Job_description

第三个是 Comp_Jobs 表:Comp_Job_ID, Company_ID, Job_ID

我正在尝试运行查询以创建与这些表的连接,以便显示与公司相关的所有工作。例如,我为我想展示的公司 1 获得了 2 个工作。但是当我运行这个查询时:

Select Company.Company_name, Jobs.Job_ID, Company.CAddress, 
Jobs.Job_Name, Jobs.Job_Description from Company, jobs
join company_job where Company.Company_ID = Company_Job.Company_ID
order by Company_job.Job_ID;

它将重复结果,因为公司 1 将显示工作 1 和 2 两次。

有没有技师?

4

2 回答 2

1
Select Company.Company_name, Jobs.Job_ID, Company.CAddress, 
Jobs.Job_Name, Jobs.Job_Description
from Company
join company_job on Company.Company_ID = Company_Job.Company_ID
join jobs on jobs.Job_ID =  Company_Job.job_id
order by Company_job.Job_ID;

尝试这个。不确定这是否是您要求的
公司和工作没有适当的加入条件

于 2013-07-23T13:45:32.603 回答
1

您应该使用INNER JOIN仅显示您想要的行:

SELECT Company.Company_name, Jobs.Job_ID, 
       Company.CAddress, Jobs.Job_Name, Jobs.Job_Description
FROM Comp_Jobs
INNER JOIN Jobs ON Jobs.Job_ID = Comp_Jobs.Job_ID
INNER JOIN Company ON Company.Company_ID = Comp_Jobs.Company_ID    
ORDER BY Company_job.Job_ID;
于 2013-07-23T13:49:04.753 回答