여러 테이블 (tcountry, tcity, tcompany, temployee
)을 쿼리해야만 국가/도시/인구/회사/직원 수에 대한 최종 답을 얻을 수 있습니다. 어딘가에서 나는 실수를 저 지르려고합니다.sql이 여러 테이블을 쿼리 할 때 오류가 발생했습니다.
테이블 tcountry
및 tcity
은 (company_name
)에 동일한 이름 (country_name
) 테이블 tcity
및 tcompany
같은 이름 (city_name
) 테이블 tcompany
및 temployee
는 동일한 이름을 가진 하나의 열 모두가 하나의 열 두 또한이 하나의 열이 .
검색어 :
SELECT
tcountry.country_name AS country,
tcountry.country_population AS population1,
tcity.city_name AS city,
tcity.city_population AS population2,
tcompany.company_name AS company,
COUNT AS (*) employee
FROM
temployee
INNER JOIN
tcity ON temployee.company_city_name = tcity.city
INNER JOIN
tcountry ON tcity.country_name = tcountry.country
ORDER BY
number_of_employees
과 같아야합니다
-하지만 테이블은'tcompany'는의에 표시되지 않습니다 'JOIN' statements ..... –
RDBMS를 나열하지 않았습니다. 대부분은 GROUP BY가 없으므로 구문 오류가 발생합니다. 직원 수를 제외하고는 아무 것도 필요하지 않으므로 테이블 참조 하위 쿼리에서 'company_name'을 사용하여 그룹화 할 수 있습니다. 테이블 참조 하위 쿼리는 해당 열의 인덱스를 사용할 수 있어야합니다 (현재 쿼리와 달리, 결과적으로'GROUP BY'는 너무 넓어서 그렇게 할 수 없다). 때로는 회사 이름과 같이 정보가 변경 될 때 대개 참조/결합 할 수있는 '대리 키'(대개 숫자)를 사용하는 것이 가장 좋습니다. –