delete a from 表 a where bb<>(select min(bb) from 表 where aa=a.aa) or cc<>(select min(cc) from 表 where aa=a.aa and bb=a.bb) or dd<>(select min(cc) from 表 where aa=a.aa and bb=a.bb and cc=a.cc)
select 专业,省,min(大学) as 大学 from tablename group by 专业,省 楼主试试行不行
查询二 选择一 省 选择二 自动列了该省所有专业 省 ( Id, 省名,) 学校( id,校名,省ID) 专业 (id,专业名,省ID,校ID) select 专业名 from 专业 where 省ID=(select id from 省 where 省名=选中的省)
to futulove因为我是用的ASP,所以不用复合查询。 列表框一可以这样写 生成一个记录RS, rs.open "select * from 省" ,conn,1,1 do while not rs.eof <option value=<%=rs("id")%><%=rs("省名")%> loop这样要完成你写的查询只要 select 专业名 from 专业 where 省id=request("下拉框的名字") 就可以了。 我问的是去掉专业相同的列
什么意思? “第三个字段是什么没有问题。是什么都行“ 是不是下面的结果也可以: --测试 Create table test_0730 (专业 varchar(20),省 varchar(50),大学 varchar(50))insert into test_0730 select '计算机','北京','清华' union select '计算机','北京','北大' union select '英语','北京','清华' union select '英语','北京','北大' union select '数学','山东','青岛大学' -- delete from test_0730 where 专业 in ( select 专业 from test_0730 group by 专业 having count(*)>1) and 大学 not in (select min(大学) from test_0730 group by 专业 having count(*)>1) select * from test_0730--结果专业 省 大学 -------------------- -------------------------------- 计算机 北京 北大 数学 山东 青岛大学 英语 北京 北大(所影响的行数为 3 行)
我用的查询是 select DISTINCT 专业名 from zhuanye where proid=省ID"但是我对结果很不满意,虽然得到了想要的数据,但是没有得到专业ID 这样给下一个查询传参数时很不方便。用futulove(福途£爱) 的方法解决了问题 sql="select id,name,proid,min(schoolid) from zhuanye where proid=省ID group by name,proid,id"不过这样的查询如果数据量大了结果会怎么,会不会效率很低。 谢谢大大们的指点。
不好意思,刚才试了一下,我改过后,得到的数据有重复。 是不是代表futulove(福途£爱)朋友的写法select 专业,省,min(大学) as 大学 from tablename group by 专业,省和我的写法select DISTINCT 专业名 from zhuanye where proid=省ID"执行的效率是一致的呢?
from 表 a
where bb<>(select min(bb) from 表 where aa=a.aa)
or cc<>(select min(cc) from 表 where aa=a.aa and bb=a.bb)
or dd<>(select min(cc) from 表 where aa=a.aa and bb=a.bb and cc=a.cc)
学校( id,校名,省ID)
专业 (id,专业名,省ID,校ID)想能进行如下查询。查询一 选择一 省
选择二 自动列出该省所有学校(以实现)查询二 选择一 省
选择二 自动列了该省所有专业
from tablename
group by 专业,省
楼主试试行不行
选择二 自动列了该省所有专业
省 ( Id, 省名,)
学校( id,校名,省ID)
专业 (id,专业名,省ID,校ID)
select 专业名 from 专业 where 省ID=(select id from 省 where 省名=选中的省)
列表框一可以这样写
生成一个记录RS,
rs.open "select * from 省" ,conn,1,1
do while not rs.eof
<option value=<%=rs("id")%><%=rs("省名")%>
loop这样要完成你写的查询只要
select 专业名 from 专业 where 省id=request("下拉框的名字")
就可以了。
我问的是去掉专业相同的列
“第三个字段是什么没有问题。是什么都行“
是不是下面的结果也可以:
--测试
Create table test_0730
(专业 varchar(20),省 varchar(50),大学 varchar(50))insert into test_0730
select '计算机','北京','清华'
union select '计算机','北京','北大'
union select '英语','北京','清华'
union select '英语','北京','北大'
union select '数学','山东','青岛大学' --
delete from test_0730
where 专业 in (
select 专业 from test_0730
group by 专业
having count(*)>1)
and 大学 not in
(select min(大学) from test_0730
group by 专业
having count(*)>1) select * from test_0730--结果专业 省 大学
-------------------- --------------------------------
计算机 北京 北大
数学 山东 青岛大学
英语 北京 北大(所影响的行数为 3 行)
select DISTINCT 专业名 from zhuanye where proid=省ID"但是我对结果很不满意,虽然得到了想要的数据,但是没有得到专业ID
这样给下一个查询传参数时很不方便。用futulove(福途£爱) 的方法解决了问题
sql="select id,name,proid,min(schoolid) from zhuanye where proid=省ID group by name,proid,id"不过这样的查询如果数据量大了结果会怎么,会不会效率很低。
谢谢大大们的指点。
不好意思,刚才试了一下,我改过后,得到的数据有重复。
是不是代表futulove(福途£爱)朋友的写法select 专业,省,min(大学) as 大学
from tablename
group by 专业,省和我的写法select DISTINCT 专业名 from zhuanye where proid=省ID"执行的效率是一致的呢?