如何 SELECT 来自 2 个表的多个值? SQL 开发者

How can I SELECT multiple values from 2 tables? SQL Developer

我想要 SELECT STAFF_IDSTAFF_NAMEPROJECT_IDSTAFF_IDPROJECT_ID 在 table ASSIGNMENTS 中被 link 编辑,但我想显示 link 同时显示 STAFF_NAME STAFF table 中的每个 STAFF_ID。这是我的代码:

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));

所有 table 都已填入数据,这是我到目前为止使用的查询,它显示了哪些员工在给定项目上工作(但仅限于 STAFF_ID,而不是包括 STAFF_NAME):

SELECT STAFF_ID, PROJECT_ID
FROM ASSIGNMENTS
WHERE PROJECT_ID = 'B0005';

我怎样才能像这样显示 link,同时还包括来自 STAFF table 的 STAFF_NAME linked 到 STAFF_ID?

这是每行的一些数据 table:

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_IDSTAFF_IDSTAFF_NAME。只有三列显示这 3 个值。

您只需要将连接添加到 STAFF table。像这样

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

我认为这个select可以解决你的问题

select PROJECT_ID, STAFF_ID, STAFF_NAME from ASSIGNMENTS
inner join STAFF on STAFF.STAFF_ID=ASSIGNMENTS.STAFF_ID

为了实现这个需求,加入三个表作为下一个方法:

通用语法:

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

结果: