求解!比较一个表的两个字段
答案:3 悬赏:20 手机版
解决时间 2021-02-19 01:13
- 提问者网友:玫瑰园
- 2021-02-18 03:34
今天去面试,一个数据库问题,一个工资表salary_table,5个字段.id,名字,工资,奖金,部门.求部门A跟B,工资跟奖金相同的人的名字.半天想不出
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-02-18 05:08
select a.名字 from
(select 名字,工资,奖金 from salary_table where 部门=A) a,
(select 名字,工资,奖金 from salary_table where 部门=B) b
where
a.工资=b.工资 and a.奖金=b.奖金;
(select 名字,工资,奖金 from salary_table where 部门=A) a,
(select 名字,工资,奖金 from salary_table where 部门=B) b
where
a.工资=b.工资 and a.奖金=b.奖金;
全部回答
- 1楼网友:woshuo
- 2021-02-18 08:05
这种写法,有点关联子查询的味道。但是它又不是,因为(select 字段, 字段 from 表 rownum=1),这里没有把两个表关联起来。
这句的意思就是:
1.从最外层的 from 表 查询数据
2.然后在展示最外层的 from 表 的每一条数据的时候,(select 字段, 字段 from 表 rownum=1),总是查询 from 表 rownum=1 的那条数据,最为字段3.
最后的结果:字段1,字段2,字段3(应该都是相同的值)
- 2楼网友:人類模型
- 2021-02-18 06:27
自己的工资和奖金相同,还是部门A的人工资和奖金与部门B中的员工工资和奖金相同?
1.自己工资和奖金相同:
select st.姓名 from salary_table st where st.工资=st.奖金 and (st.部门='A' or st.部门='B')
2.A部门中员工工资和奖金与B部门员工工资和奖金相同
select st1.姓名,st2.姓名 from (select * from salary_table where 部门='A') st1,(select * from salary_table where 部门='B') st2 where st1.工资=st2.工资 and st1.奖金=st2.奖金
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯