我想选择STAFF_ID
,STAFF_NAME
和PROJECT_ID
。 STAFF_ID
和PROJECT_ID
已在表格ASSIGNMENTS
中关联,但我想显示该链接,同时还显示{{1}中每个STAFF_NAME
的{{1}}表。这是我的代码:
STAFF_ID
所有表格都填充了数据,这是我目前使用的查询,显示哪些员工在给定项目上工作(但只有STAFF_ID,而不包括STAFF_NAME):
STAFF
我如何显示这样的链接,同时还包括从STAFF表链接到STAFF_ID的STAFF_NAME?
以下是每个表格中一行的一些数据:
CREATE TABLE PROJECT
(PROJECT_ID CHAR(5) NOT NULL,
PROJECT_NAME CHAR(20),
PROJECT_TYPE CHAR(20),
START_DATE DATE,
END_DATE DATE,
PRIMARY KEY (PROJECT_ID));
CREATE TABLE STAFF
(STAFF_ID CHAR(5) NOT NULL,
STAFF_NAME CHAR(20),
JOB_TYPE CHAR(20),
JOB_GRADE CHAR(20),
PRIMARY KEY (STAFF_ID));
CREATE TABLE ASSIGNMENTS
(ASSIGNMENT_ID CHAR(5) NOT NULL,
PROJECT_ID CHAR(5),
STAFF_ID CHAR(5),
PRIMARY KEY (ASSIGNMENT_ID),
FOREIGN KEY (PROJECT_ID) REFERENCES PROJECT(PROJECT_ID),
FOREIGN KEY (STAFF_ID) REFERENCES STAFF(STAFF_ID));
我要展示的是SELECT STAFF_ID, PROJECT_ID
FROM ASSIGNMENTS
WHERE PROJECT_ID = 'B0005';
,INSERT INTO PROJECT (PROJECT_ID, PROJECT_NAME, PROJECT_TYPE, START_DATE, END_DATE)
VALUES ('B0001','BIKESHOP.COM','WEB DEVELOPMENT',TO_DATE('15/01/17','DD/MM/YY'),TO_DATE('15/02/17','DD/MM/YY'));
INSERT INTO STAFF (STAFF_ID, STAFF_NAME, JOB_TYPE, JOB_GRADE)
VALUES ('ST001','JOHN MASON','WEB DEVELOPER','1');
INSERT INTO ASSIGNMENTS (ASSIGNMENT_ID, PROJECT_ID, STAFF_ID, HARDWARE_ID, SOFTWARE_ID)
VALUES ('A0001','B0001','ST001','H0001','S0001');
,PROJECT_ID
。只有三列显示这3个值。
答案 0 :(得分:1)
您只需要将连接添加到STAFF
表。像这样的东西
SELECT STAFF.STAFF_ID, STAFF.STAFF_NAME, ASSIGNMENTS.PROJECT_ID
FROM ASSIGNMENTS
INNER JOIN STAFF ON ASSIGNMENTS.STAFF_ID = STAFF.STAFF_ID
WHERE ASSIGNMENTS.PROJECT_ID = 'B0005';
答案 1 :(得分:0)
我认为这个选择可以解决你的问题
bool CheckIfAvailable(HashSet<int> hayStack1, HashSet<int> hayStack2, int needle)
{
if(hayStack1 == null && hayStack2 == null)
{
return true;
}
else if(hayStack1 != null && hayStack1.Contains(needle))
{
return true;
}
else if(hayStack2 != null && hayStack2.Contains(needle))
{
return true;
}
return false;
}
答案 2 :(得分:0)
为了实现这一需求,请按以下方法加入三个表:
通用语法:
select *
from
tableA a
inner join
tableB b
on a.common = b.common
inner join
TableC c
on b.common = c.common
所以请按照下一个查询:
select a.PROJECT_ID, b.STAFF_ID, c.STAFF_NAME
from PROJECT a inner join ASSIGNMENTS b
on a.PROJECT_ID = b.PROJECT_ID
inner join STAFF c
on c.STAFF_ID = b.STAFF_ID
<强>结果:强>