怎样用SQL语句在一个表里找出具有两个相同属性的记录?

来源:百度知道 编辑:UC知道 时间:2024/06/16 20:36:28
比如说这个表里有属性:姓名,学号,专业,籍贯等。那我现在要找出专业和籍贯都相同的学生记录。如何用SQL语句实现?
假设相同的专业名为A,籍贯名为B,表名为TAB
不好意思,忘了说一个条件。
就是事先不知道有哪些记录里的专业和籍贯是相同的,A和B是未知的,即有可能A和B有多种取值情况,而现在要全部把它们查找出来。
不是专业=籍贯,而是不同的记录中专业相同AND籍贯相同的,比如说专业都是计算机的,籍贯都是福建福州的;或者专业都是数学的,籍贯都是福建厦门的。

又是典型的自连接的问题

select a.* from tab a join tab b on a.a=b.a and a.b=b.b

select * from TAB where 专业=A and 籍贯=B

select * from TAB where 专业=A and 籍贯=B

回答者: 天外游 - 举人 五级 12-15 16:08

修改前的记录。。。汗。。慢了一秒。。。

select 专业,籍贯 , count(*) from tab
group by 专业,籍贯
是专业,籍贯相同的学生记录数

select 姓名,学号 , 专业,籍贯 from tab
order by 专业,籍贯
就是明细

若你想查某个专业 如 A 和籍贯 如 B的话,

select * from TAB where 专业='A'and 籍贯='B'

察看全部专业
select distinct 专业 from TAB;

察看全部籍贯
select distinct 籍贯 from TAB;

然后
select * from TAB where 专业='A'and 籍贯='B'
一定要加单引号,因为是字符型