2009-12-09 2 views
0

클라이언트는 특정 크기의 공간 만 사용할 수 있기 때문에 크기를 확인하는 데이터베이스가 있습니다. 또한 db 수만큼 넣은 '페이지'수가있을 수 있습니다. 이것은 내가 필요로하는 정보 테이블을 리턴SQL 크기 비교

SELECT table_schema "Servers", 
sum(data_length + index_length)/1024/1024 "Data Base Size in MB", 
sum(data_free)/ 1024/1024 "Free Space in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema ; 

:

나는 다음과 같은 SQL 쿼리가 있습니다. 그러나, 나는 또한 각 사용자가 얼마나 사용하고 있는지 보여주는 3 coloumns를 추가하고 싶습니다. 먼저 다음과 같이 시도해 보았습니다.

SELECT table_schema "Servers", 
sum(data_length + index_length)/1024/1024 "Data Base Size in MB", 
sum(data_free)/ 1024/1024 "Free Space in MB", 
property_value "MaxWebhotelSize" 
FROM information_schema.TABLES, properties 
WHERE property_key LIKE 'MaxWEbhotelSize' 
GROUP BY table_schema 
UNION 
SELECT property_value "MaxPages" 
FROM properties 
WHERE property_key LIKE 'MaxPages'; 

필요한 두 가지 색상을 추가해야합니다. 내가 조합에서 모든 것을 제외하고 잘 작동하고 테이블에 최대 웹 호텔 크기에 대한 정보를 추가하지만 다른 coloumn을 추가하려고하면 "사용 된 SELECT 문에 다른 수의 열이 있습니다"라는 오류가 발생합니다. 나는 다른 방법으로 시도했지만 좋은 결과를 얻을 수있는 좋은 길을 찾지 못했습니다. 나는 SQL에 아주 익숙하지 않다. 어리석은 질문이라면 유감스럽게 생각한다.

답변

1

유니언 쿼리에서 열의 개수는 동일해야합니다.

통합 쿼리의 첫 번째 섹션에 3 개의 열이있는 경우 두 번째 열에도 세 개의 열이 있어야합니다.

예에서 두 번째 섹션에는 1 개의 열만 있습니다. 추가 2 열에 필요한 것을 지정해 주시면 해당 검색어를 지원할 수 있습니다.

+0

글쎄, 어떻게 표현해야할지 모르겠다. 하지만 여기에 간다 : 나는 여러 개의 MySQL 데이터베이스를 가지고있다. 많은 테이블을 가진 각각의 db, 이들 테이블 중 하나는 허용 된 크기가 쓰여지는 "속성", 최대 페이지 수 및 최대 메일 수를 갖는다. 쿼리는 하나의 db에있는 모든 테이블의 크기를 확인하고 사용중인 크기를 되돌려 주어야합니다. 나는 그 부분이 효과가 있다고 생각한다. 이 새 테이블에 나는 servername, 사용 된 크기 및 여유 공간을 보유하는 새 테이블에이 3 개의 최대 값을 추가하거나 추가해야합니다. – Lasse