programing

하나의 테이블에서 다른 테이블로 여러 필드

starjava 2023. 10. 14. 09:27
반응형

하나의 테이블에서 다른 테이블로 여러 필드

그래서 저는 모든 사용자 정보가 있는 테이블과 제품 정보가 있는 테이블이 있습니다.

각 제품에는 여러 사용자에 대한 참조가 있습니다. 예: user1은 생산자, user2는 productSupervisor, user3은 productManager입니다.

product1.producer는 User1입니다. 이와 같은 정보를 얻으려면 어떻게 해야 합니까?이름, 제품1.supervisor는 user2 입니다.이름과 제품.manager는 user3 입니다.이름.

생산자, 제품감독자 및 제품관리자는 사용자로 저장됩니다.신분증.

문 만들기

CREATE TABLE employee (
  idEmployee int(11) NOT NULL AUTO_INCREMENT,
  networkID varchar(45) NOT NULL,
  firstName varchar(100) NOT NULL,
  lastName varchar(100) NOT NULL,
  phoneExtension varchar(10) DEFAULT NULL,
  email varchar(50) NOT NULL,
  mobile varchar(20) DEFAULT NULL,
  onCall tinyint(4) NOT NULL DEFAULT '0',
  lastLogin varchar(100) DEFAULT 'Never',
  active tinyint(4) NOT NULL DEFAULT '1',
  createDate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (idEmployee),
  KEY idx_employee (idTeam),
  KEY idx_employee_0 (idPosition),
  CONSTRAINT fk_employee_employeepositions FOREIGN KEY (idPosition) REFERENCES employeePositions (idPosition) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT fk_employee_teams FOREIGN KEY (idTeam) REFERENCES teams (idTeam) ON UPDATE NO ACTION
)

CREATE TABLE product (
  idProduct int(11) NOT NULL,
  idSupervisor int(11) NOT NULL DEFAULT '1',
  idProducer int(11) NOT NULL DEFAULT '1',
  idManager int(11) NOT NULL DEFAULT '1',
  prodcutInfo longtext,
  PRIMARY KEY idProduct 
 )

가입할 수 있습니다.product테이블 위의employee각 역할에 대해 한 번씩 테이블 세 번:

SELECT idProduct, 
       CONCAT_WS(' ', s.firstname, s.lastname) AS supervisor,
       CONCAT_WS(' ', p.firstname, p.lastname) AS producer,
       CONCAT_WS(' ', m.firstname, m.lastname) AS manager
FROM   product pr
JOIN   employee s ON pr.idSupervisor = s.idEmployee
JOIN   employee p ON pr.idSupervisor = p.idEmployee
JOIN   employee m ON pr.idSupervisor = m.idEmployee

언급URL : https://stackoverflow.com/questions/42867962/one-table-multiple-fields-to-other-table

반응형