SQL 문이 제대로 배치되지 않은 것 같습니다.
문 뒤에 별칭 테이블 emr_cwagreich.patient_medication
을 사용할 수 없으며 나중에 문 뒤에 와야 합니다. 다음과 같이 쿼리를 다시 정렬 해보십시오.a
UPDATE
SET
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