다른 테이블에서 열 업데이트 -MySQL 3.5.2
-
03-07-2019 - |
문제
다른 테이블에서 MySQL 데이터베이스 테이블에서 열을 업데이트하기 위해 몇 가지 방법을 시도했지만 운이 없습니다.
버전 3.5.2가 멀티 테이블 업데이트를 지원하지 않으며 코드 기반 솔루션이 필요합니다. 맞습니까?
누군가가 SQL을 사용하여 올바른 방향으로 나를 가리킬 수 없다면?
UPDATE products SET products_ordered = (
SELECT SUM(products_quantity)
FROM orders_products
WHERE products_id = products.products_id
);
또는:
Create temporary table my_temp_table
as
SELECT products_id, SUM(products_quantity) as total
FROM orders_products
GROUP BY products_id
UPDATE products, my_temp_table
SET products.products_ordered = my_temp_table.total
WHERE products.products_id = my_temp_table.products_id
해결책
하위 쿼리 또는 멀티 테이블 업데이트를 지원하지 않는 MySQL을 사용했을 때 설명하는 작업을 수행하기 위해 트릭을 사용했습니다. 결과 자체가 SQL 문인 쿼리를 실행 한 다음 출력을 저장 한 다음 SQL 스크립트로 실행하십시오.
SELECT CONCAT(
'UPDATE products SET products_ordered = ',
SUM(products_quantity),
' WHERE product_id = ', products_id, ';') AS sql_statement
FROM orders_products
GROUP BY products_id;
그건 그렇고, 내가 아는 한 MySQL 3.5.x 버전은 없습니다. 나는 당신이 그 잘못을보고했을 것 같아요. 그렇지 않으면 MSQL과 같은 다른 제품을 사용하고 있습니다.
편집하다: 위의 쿼리에서 생성 된 SQL 문에 세미콜론을 추가하는 것을 잊었습니다.
다른 팁
MySQL <= 4.0.4에서 멀티 테이블 업데이트는 지원되지 않습니다. MySQL 5.0.xx로 서버를 업데이트하는 것이 좋습니다.
제휴하지 않습니다 StackOverflow