1
私はSQLを学んでいます。私は(多かれ少なかれ)の1つしか持たないselect
employee
(emp_name, emp_lname, project_name
)にします。私はemployee_project
からselect
だけのユニークなemp_id
にしようとしていますテーブルから一意のデータを選択する方が良い考えです
create table employee(
emp_id char (5) primary key,
emp_name nvarchar(15) not null,
emp_lname nvarchar(20)
);
create table project(
pr_id char(5) primary key,
project_name nvarchar(10) not null,
project_budjet int
);
create table employee_project(
emp_id char (5) foreign key references employee(emp_id),
pr_id char(5) foreign key references project(pr_id),
constraint premppk primary key(emp_id, pr_id)
);
:
テーブル:
は、私は、データベース内の3台を持っています。
このコードは
select emp_id, count(pr_id) from employee_project
group by emp_id having count(pr_id) = 1
employee_project
から私にユニーク
emp_id
を与えるしかし、私は
emp_id
と
select
emp_name
に
pr_id
、
emp_lname
と
project_name
を必要としています。私はすでに
emp_id
を使って
select
pr_id
を使用しようとしています。コード:
select ep.emp_id, ep.pr_id from employee_project as ep,
(
select emp_id, count(pr_id) from employee_project
group by emp_id having count(pr_id) = 1
) CT
where CT.emp_id = ep.emp_id
今、私はこれらのemployee
とproject
について必要なものすべてを選択するためのすべてを持っています。最後にコード:
select employee.emp_name, employee.emp_lname, project.project_name
from employee, project,
(
select ep.emp_id, ep.pr_id from employee_project as ep,
(
select emp_id, count(pr_id) from employee_project
group by emp_id having count(pr_id) = 1
) CT
where CT.emp_id = ep.emp_id
) CK
where CK.emp_id = employee.emp_id and CK.pr_id = project.pr_id
これを簡単に行う方法はありますか?
ありがとうございました。
私はそうは思わない。 '' distinct''は私に最初のものを与えますが、ユニークではありません。もう一回テーブルにいれば必要ありません。 – Guja1501