計算機科学のブログ

SQL - SQLite - Python - 制約、ビュー、トランザクション - 料理人が多するぎると、データベースがダメになる - view

Head First SQL ―頭とからだで覚えるSQLの基本Lynn Beighley(著)、 佐藤 直生(監訳)、 松永 多苗子(翻訳)、 オライリージャパンの 11章(制約、ビュー、トランザクション - 料理人が多するぎると、データベースがダメになる)、p.469(エクササイズ)の解答を求めてみる。

schema2.sql

-- 必要なテーブルはjob_current, job_desired, my_contactsテーブル

-- 昇給額を知らためにはjob_currentのsalary列とjob_desiredのsalary_low列が使える。

-- salary_low - salary as raise

create view job_raises as
select
mc.first_name, mc.last_name, mc.email, mc.phone
jc.salary, jd.low_salary, jd.low_salary - jc.salary as raise
from job_current as jc
inner join job_desired jd
inner join my_contacts mc
on jc.contact_id = jd.contact_id
and jc.contact_id = mc.contact_id;