题目描述
存在如下的视图:
创建视图emp_v as select * from employees emp_no> 10005;
CREATE
TABLE` 员工`(`emp_no` int(11)NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14)NOT NULL,
`last_name` varchar(16)NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY(`emp_no`));
获取雇员中的行数据,且这些行也存在于emp_v中。注意不能使用intersect关键字。
输出格式:
EMP_NO 生日 名字 姓 性别 聘用日期
10006 1953年4月20日 Anneke Preusig F 1989年6月2日
10007 1957年5月23日 Tzvetan 杰林斯基 F 1989年2月10日
10008 1958年2月19日 Saniya Kalloufi 中号 1994年9月15日
10009 1952年4月19日 Sumant PEAC F 1985年2月18日
10010 1963年6月1日 Duangkaew Piveteau F 1989年8月24日
10011 1953年11月7日 玛丽 思劳斯 F 1990年1月22日
解决思路
SELECT em.* FROM employees AS em, emp_v AS ev WHERE em.emp_no = ev.emp_no
- 由于视图 emp_v 的记录是从 employees 中导出的,因此要判断两者中相等的数据,只需要判断emp_no相等即可。