日期:2014-05-20  浏览次数:20737 次

面试.net程序员,碰到的SQL笔试题,望大神指导~!
对两个结构完全相同的表进行操作,都包含字段ID,Name,Department
 1.查找出表一,表二中都有的记录。
小弟写的语句为select * from T_one join T_tow on T_one.Name=T_tow.Name and T_one.Department=T_tow.Department望大神指导。

2.查找出表1中有,表二中没有的全部记录。
select * from T_one where Name1 not in(select Name1 from T_tow)

3.删除表1中有而表二中没有的全部记录。
delete from T_one where ID in (select ID from T_one where Name1 not in(select Name1 from T_tow))

面试的经理说基础薄弱
忘大神指导,我现在大四,还需要学习很多,希望交志同道合之士共同学习。


------解决方案--------------------
应该是想考exists,not exists的用法吧
------解决方案--------------------
不知道他为什么说你基础薄弱,打击成分较大
------解决方案--------------------
要我说,你基础确实薄弱,几个问题你再分析分析?

以SQL SERVER为例,没写SQL语句,自己琢磨
1.找出2张表都有的记录,说明是交集,怎样写最好?
SQL code

用关键字 intersect

------解决方案--------------------
探讨
引用:
1.查找出表一,表二中都有的记录。
小弟写的语句为select * from T_one join T_tow on T_one.Name=T_tow.Name and T_one.Department=T_tow.Department望大神指导。


使用inner join~

SQL code

select * from T_one A inner j……

------解决方案--------------------
如果两个表中的ID均为自增列,那么

1. 查找出表一,表二中都有的记录
SQL code

select * from T_one A inner join T_tow  B on A.Name= B.Name and A.Department = B.Department