이전 질문에 대한 후속 작업에서 3 개의 테이블 A, B 및 C가 있다고 가정 해 보겠습니다. 테이블 A에는 테이블 B의 외래 키로 사용되는 ID가 있습니다 와 C (각각은 속성으로서 어떤 값을 가짐). 다음과 같이 테이블 A의 각 ID를 들어, 내가 할 수있는 테이블 B와 C 사이의 값의 차이를 가져올 지 :다중 계산 된 값을 기반으로 한 MySQL의 뷰
CREATE VIEW T1 AS
SELECT B.A_ID AS ID, SUM(B.VALUE) AS VAL
FROM B
GROUP BY B.A_ID;
CREATE VIEW T2 AS
SELECT C.A_ID AS ID, SUM(C.VALUE) AS VAL
FROM C
GROUP BY C.A_ID;
SELECT T1.ID, T1.VAL, T2.VAL FROM T1, T2 WHERE T1.ID = T2.ID;
문제는 테이블 B가 특정 ID에 대한 몇 가지 값이 어떤 경우입니다 , 그러나 테이블 C는 그렇지 않습니다. 이 경우 select 문은 해당 행을 반환하지 않습니다.
CREATE VIEW T3 AS
SELECT B.A_ID AS ID, SUM(B.VALUE) AS VAL1, SUB(C.VAL) AS VAL2
FROM B, C
WHERE B.A_ID = C.A_ID
GROUP BY B.A_ID;
이러한 뷰의 작성 스크립트의 예는 평가 될 것입니다 : 내가 기본적으로 다음과 같이 보이는, 단일 뷰를 만들 수있는 방법이있다.
나는 정말로 당신을 위해 일하는 솔루션에 관심이 있습니다. –
나는 적어도 당신이 제안한 것을 사용하려고 할 것입니다. 해결할 데이터베이스에 대한 내 사용자 액세스 권한으로 호스팅 제공 업체에 문제가 있습니다. 따라서 스크립트를 준비했지만 아직 테스트 할 수 없었습니다. 솔루션이 정상적으로 작동하면 답변을 올바르게 수락합니다. – Elie
내 호스팅 제공 업체는 MySQL 5.0 만 지원하며, 뷰는 MySQL 5.0.1에서 도입되었으므로 데이터를 자동으로 대조하는 옵션이 꺼져 있습니다. – Elie