카테고리 없음

[mysql] 복잡한 쿼리의 구문 오류

행복을전해요 2021. 1. 22. 14:57

SQL 문이 제대로 배치되지 않은 것 같습니다.

뒤에 별칭 테이블 emr_cwagreich.patient_medication사용할 수 없으며 나중에 뒤에 와야 합니다. 다음과 같이 쿼리를 다시 정렬 해보십시오.aUPDATESET

UPDATE  a
  SET   a.ndc10 = b.ndc10,
          a.ndc11 = b.ndc11,
                  a.package_id = b.package_id,
                          a.product_id = b.product_id,
                                  a.marketed_product_id = b.marketed_product_id,
                                          a.medication_name = b.medication_name
                                            FROM  emr_cwagreich.patient_medication a
                                                INNER JOIN
                                                ...
                                                

s FROM뒤에 명령문을 추가 SET하면 업데이트 테이블의 별칭을 지정하고 다른 테이블에 조인 할 수 있습니다.

-------------------

올바르게 디버그하려면 :

업데이트 내부에 SELECT 만 던져서 SELECT가 적절한 결과를 제공하는지 확인하십시오. 아마도 오류가있을 수 있습니다. 쿼리 시작 부분에 오류가 표시되지 않는 UPDATE emr_cwagreich.patient_medication a INNER JOIN ( ...것 같습니다.

SELECT의 필드 맞습니까? emr_cwagreich.patient_medication_archive.id세 가지 사양 항목이있는 이유 는 본 적이 없습니다 .

최신 정보

새로운 선택으로 업데이트를 시도하고 작동하는지 확인하십시오.

UPDATE emr_cwagreich.patient_medication a
INNER JOIN
(
    SELECT pma.id AS id,
        pma.drug_syn_id AS drug_syn_id, 
            pk.NDC10 AS ndc10, 
                pk.NDC11 AS ndc11, 
                    pk.PackageID AS package_id, 
                        pk.ProductID AS product_id,
                            pgns.GenericNameLong AS medication_name
                                FROM emr_cwagreich.patient_medication_archive pma
                                    JOIN ep_api.CORE_GENDRUG_SYNONYM cgs ON pma.drug_syn_id = cgs.DRUG_SYN_ID
                                        JOIN ep_api.NDC_PKG_PRODUCT npp ON cgs.DRUG_SYN_ID = npp.DRUG_SYN_ID
                                            JOIN ep_alchemy.package pk ON npp.CORE_10 = pk.NDC10
                                                JOIN ep_alchemy.product_generic_name_stub pgns ON pk.ProductID = pgns.ProductID
                                                    GROUP BY medication_name
                                                        ORDER BY COUNT(pgns.GenericNameLong) DESC
                                                            LIMIT 1
                                                            ) b ON a.id = b.id
                                                            SET a.ndc10 = b.ndc10,
                                                                a.ndc11 = b.ndc11,
                                                                    a.package_id = b.package_id,
                                                                        a.product_id = b.product_id,
                                                                            a.marketed_product_id = b.marketed_product_id,
                                                                                a.medication_name = b.medication_name
                                                                                WHERE (b.drug_syn_id <> "" AND b.drug_syn_id IS NOT NULL)
                                                                                AND
                                                                                (a.product_id = "" OR a.product_id IS NULL)
                                                                                AND 
                                                                                a.id = 17221 
                                                                                


출처
https://stackoverflow.com/questions/22009841