2017-04-07 4 views
0

organization_member이라는 접합 테이블을 통해 사용자와 조직간에 다 대다 관계를 만드는 새로운 마이그레이션이 있습니다. 이 관계를 나타 내기 위해 organization_iduser_iduser 테이블에있는 현재 값을 접합 테이블에 마이 그 레이션하려고하므로 조인 및 업데이트를 시도 할 것이라고 생각했지만 양쪽 모두를 쿼리하는 방법을 알 수없는 것처럼 보입니다 테이블을 열고 기존 열을 user에 가져 가서 관계가 현재 존재하지 않는 위치를 업데이트하십시오. 여기에 내 원래 생각했다 :사용자 테이블의 값을 기반으로 SQL - Junction 테이블 업데이트

UPDATE `om` 
SET `om`.`user_id` = `u`.`user_id`, `om`.`organization_id` = `u`.`organization_id` 
FROM `user` AS `u` 
LEFT JOIN `organization_member` AS `om` 
ON `u`.`user_id` = `om`.`user_id` 
WHERE `u`.`organization_id` IS NOT NULL; 

하지만 난 좋은 것

'FROM `user` AS `u` 
LEFT JOIN `organization_member` AS `om` 
ON `u`.`user_id` = `o' at line 3 

어떤 도움에 오류가!

답변

0

MySQL에서 JOINUPDATE의 일부입니다. 별도의 FROM 없습니다 :

UPDATE `user` `u` JOIN 
     `organization_member` `om` 
     ON `u`.`user_id` = `om`.`user_id` 
    SET `om`.`user_id` = `u`.`user_id`, 
     `om`.`organization_id` = `u`.`organization_id` 
    WHERE `u`.`organization_id` IS NOT NULL; 

LEFT JOIN도 부적절하다. om을 업데이트하려고하므로 일치하는 행이 필요합니다.

+0

캐치를 가져 주셔서 감사합니다. 맞아! – cphill