위 사진과 같은 DB가 있습니다.
이를 Frontend 로 끌어내는 테이블 툴이 있는데, 이 테이블 툴은 Front end 에서 내용물을 수정할수있게 해주는 역활을 하고있습니다.
SELECT wp_fusion_form_entries.`submission_id`, wp_fusion_form_entries.`form_id`, wp_fusion_form_entries.`field_id`, wp_fusion_form_entries.`value` FROM wp_fusion_form_entries WHERE 1=1 AND wp_fusion_form_entries.`form_id` = '7' AND wp_fusion_form_entries.`field_id` > '30' GROUP BY wp_fusion_form_entries.`submission_id`
위와같이 쿼리를 예시로 짜보면, Frontend 에서 데이터 수정이 가능한걸 확인하였습니다. (아무래도, 기존 DB모양 생긴걸 그대로 불러오는 방식이라 안꺠지는거 아닐까 추측해보았습니다)
문제는, 위와같이 불러오면, 아래의 예문처럼 필요자료갖 제대로 나열되지도 않을뿐더러, 별 쓸데가 없는 테이블이 됩니다.
하여, 부족한 지식으로, 코타나를 어루고 달래가며 아래와 같은 쿼리문을 받았는데...
테이블 생긴건 딱 제가 원하던 바 인데
이 쿼리문으로 하면 , (Close Error! There was an error trying to update the row! Error: Unknown column '' in 'where clause') 의 에러를 냅니다.
짧은 지식으로는, 불러오는 데이터 값의 행열을 바꿔버려서, Frontend 에서 해당 칼럼을 못찾는거같기도 하고...
SELECT wp_fusion_form_entries.`form_id`, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 30 THEN wp_fusion_form_entries.`value` END) AS value_30, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 31 THEN wp_fusion_form_entries.`value` END) AS value_31, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 32 THEN wp_fusion_form_entries.`value` END) AS value_32, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 33 THEN wp_fusion_form_entries.`value` END) AS value_33, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 34 THEN wp_fusion_form_entries.`value` END) AS value_34, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 35 THEN wp_fusion_form_entries.`value` END) AS value_35, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 36 THEN wp_fusion_form_entries.`value` END) AS value_36, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 37 THEN wp_fusion_form_entries.`value` END) AS value_37, MAX(CASE WHEN wp_fusion_form_entries.`field_id` = 38 THEN wp_fusion_form_entries.`value` END) AS value_38 FROM wp_fusion_form_entries WHERE wp_fusion_form_entries.`form_id` = 7 GROUP BY wp_fusion_form_entries.`submission_id`
너무 한단계 한단계 막히다보니 도움이 필요하여 글 쓰게 되었습니다. ㅠ
많은 조언 부탁드립니다.
질문의 요지가 이해가 되지 않습니다.
대략적으로 첫쿼리는 CRUD가 잘 되는데 마지막 쿼리는 프론트엔드에서 오류가 난다는 뜻으로 읽힙니다.
1. DB와 연결된 프론트엔드가 무엇으로 작성되었는지, DB를 연결한 기술이 무엇인지(JPA?)
2. 하고자 하는게 무엇인지(프론트에서 수정히면 알아서 DB 가 업데이트 되기를 원히는건지)
-- 수정
다시 보니 질문이 이해가 되네요. 쿼리툴에서 조회 결과를 수정할 수 있는 조건이 있는데요, 테이블명(VIEW는 불가)과 키값(unique), 마지막으로 수정되거나 삽입될 컬럼명이 있습니다. 마지막의 쿼리는 이를 만족하지 않으므로 쿼리툴에서 UPDATE나 INSERT를 요청해도 오류가 날 수밖에 없습니다.