假设有两个数据库表insurance和 employee分别记录了某地所有工作人员的社保信息和基本信息:
insurance(id,is_valid),各属性分别表示身份证号、社保是否有效,其中is_valid=1表示社保有效,is_valid=0表示社保无效。
employee(id,name,salay,is_local),各属性分别表示身份证号、姓名、每月工资,户口是否在当地,其中is_local=1表示户口在当地,is_local=0表示户口不在当地。
2021年农历新年,为防控疫情,鼓励留在工作地过年,决定对社保有效且户口不在当地的人群发放津贴。可筛选出满足补贴发放条件人员的SQL语句为( )。
问题1选项
A.SELECT * FROM employee, insurance WHERE insurance.id = employee.id AND insurance.is_valid=1
B.SELECT * FROM employee, insurance WHERE insurance.is_valid= 1 AND employee.is_local=0
C.SELECT * FROM employee, insurance WHERE insurance.id = employee.id AND insurance.is_valid= 1 AND employee.is_local=0
D.SELECT * FROM employee, insurance WHERE insurance.id = employee.id AND insurance.is_valid= 1 AND employee.is_local=1
select的标准语法结构:
select 列名 from 表名 where 条件 group by 分组字段 having 条件 order by 排序字段。
题干中已经说明:isvalid=1表示社保有效;islocal=0 表示不在当地。所以where的条件应该是insurance.isvalid=1 and employee.islocal=0 and insurance.id= employee.id
所以答案为C。