변수 테이블에서 변수 행을 업데이트하려고합니다.MYSQL 업데이트 쿼리 다중 조인 선택 오류
// 편집 : 이것은 내 쿼리입니다 이중 제거 ...
UPDATE `ec`.`category_id` AS `category_id`,`e`.`title` AS `title`,
`r`.`first_name` AS `first_name`,
`r`.`last_name` AS `last_name`,`r`.`email` AS `email`,
`r`.`comment` AS `comment`,`r`.`amount` AS `amount`,
`r`.`published` AS `published`,`r`.`transaction_id` AS `transaction_id`,
`r`.`register_date` AS `register_date`,
max((case `f`.`id` when 1 then `v`.`field_value` else '' end)) AS `pand`,
max((case `f`.`id` when 52 then `v`.`field_value` else '' end)) AS `achternaam`,
max((case `f`.`id` when 53 then `v`.`field_value` else '' end)) AS `voornaam`,
max((case `f`.`id` when 20 then `v`.`field_value` else '' end)) AS `gebdat`,
max((case `f`.`id` when 32 then `v`.`field_value` else '' end)) AS `geslacht`,
max((case `f`.`id` when 31 then `v`.`field_value` else '' end)) AS `kleinkind`,
max((case `f`.`id` when 21 then `v`.`field_value` else '' end)) AS `straat`,
max((case `f`.`id` when 54 then `v`.`field_value` else '' end)) AS `postcode`,
max((case `f`.`id` when 55 then `v`.`field_value` else '' end)) AS `plaats`,
max((case `f`.`id` when 26 then `v`.`field_value` else '' end)) AS `telthuis`,
max((case `f`.`id` when 27 then `v`.`field_value` else '' end)) AS `telmir`,
max((case `f`.`id` when 28 then `v`.`field_value` else '' end)) AS `gsmdeelnemer`,
max((case `f`.`id` when 29 then `v`.`field_value` else '' end)) AS `gsmpapa`,
max((case `f`.`id` when 56 then `v`.`field_value` else '' end)) AS `gsmmama`,
max((case `f`.`id` when 30 then `v`.`field_value` else '' end)) AS `graad`,
max((case `f`.`id` when 88 then `v`.`field_value` else '' end)) AS `bestelling`,
max((case `f`.`id` when 34 then `v`.`field_value` else '' end)) AS `eigendom`,
max((case `f`.`id` when 57 then `v`.`field_value` else '' end)) AS `zodiac`,
max((case `f`.`id` when 42 then `v`.`field_value` else '' end)) AS `tshirt`,
max((case `f`.`id` when 39 then `v`.`field_value` else '' end)) AS `helpdag`,
max((case `f`.`id` when 40 then `v`.`field_value` else '' end)) AS `helpinfo`,
max((case `f`.`id` when 36 then `v`.`field_value` else '' end)) AS `vervoerjanee`,
max((case `f`.`id` when 37 then `v`.`field_value` else '' end)) AS `vervoerinfo`
from ((((`dat_eb_field_values` `v` join `dat_eb_registrants` `r` on((`v`.`registrant_id` = `r`.`id`)))
join `dat_eb_fields` `f` on((`v`.`field_id` = `f`.`id`)))
join `dat_eb_events` `e` on((`r`.`event_id` = `e`.`id`)))
join `dat_eb_event_categories` `ec` on((`ec`.`event_id` = `e`.`id`)))
where ((`ec`.`category_id` = 4) and (`e`.`published` = 1))
SET $rowname=$newvalue WHERE transaction_id=$transid
는 일반적으로이 쿼리는 대신 UPDATE의 첫 번째 인수로 SELECT 사용합니다. 마지막 줄도 나에게 추가되었습니다. $ rowname, $ NEWVALUE 및 $ TRANSID 모든 정의하고 나에게 다음과 같은 오류 geives : 사전에
Not unique table/alias: 'first_name'.
감사합니다, 로랑
는
일반적으로이 쿼리는 UPDATE 대신 첫 번째 인수로 SELECT를 사용합니다. 게시물 –
일반적으로 SELECT를 사용합니다. 그리고이 SELECT 절에서 UPDATE를 만들고 싶습니다. –
이것을 실행하면 '필드 목록'의 열 ($ newvalue의 내용)을 알 수 없습니까? 어떤 생각입니까? – Laurent