と の 2 つのテーブルがEMP
ありSalary
、EMP
テーブルには次のフィールドがあります。
id, emp_name,designation
テーブルにSalary
は次のフィールドがあります。
id, emp_id, salary
給与が 15000 を超える従業員の名前を取得するにはどうすればよいですか?
と の 2 つのテーブルがEMP
ありSalary
、EMP
テーブルには次のフィールドがあります。
id, emp_name,designation
テーブルにSalary
は次のフィールドがあります。
id, emp_id, salary
給与が 15000 を超える従業員の名前を取得するにはどうすればよいですか?
使用JOIN
およびWHERE
条項
SELECT emp_name
FROM EMP
JOIN Salary
ON EMP.id = Salary.emp_id
WHERE salary > 15000
これは宿題ですか?完全なステートメントではなく、必要なヒントを提供します。
給与自体がテーブルである理由は、従業員が複数の給与を持つことができるためです。(それ以外の場合、給与は単に emp テーブルのフィールドになります)。
したがって、最初に emp と Salary を結合して、すべての従業員のすべての給与を取得します。次に、従業員ごとにグループ化して、各従業員の給与の合計を取得します。そして最後に、結果を 15000 を超える給与にフィルターします。グループの結果をフィルターする方法を既に知っていますか?
正しいステートメントを書く方法は複数あります。与えられたヒントを使用して、あなたはそれを見つけると確信しています。幸運を!
次のように、内部クエリを使用できます。
SELECT emp_name
FROM emp
WHERE id IN (SELECT emp_id FROM salary WHERE salary > 15000)