sql如何取交集

sql如何取交集,第1张

select from mytable where pet in (select pet from mytable group by pet having count(pet)>1)

获取同一pet数量大于1的pet并select出相关信息

select pet,count(pet) as per_count from mytable group by pet order by count(pet) desc limit 10

获取pet拥有量前十的pet和数量

首先俩个表要存在关联关系,例:表A中的ID列和表B中的ID列是一样的数据,且唯一

则:

select from A

left jion B on AID=BID

举个例子,不知道是不是你需要的

--创建数据库

create table db(id int , code int)

--插入测试数据

insert db select 1,100

insert db select 2,100

insert db select 3,100

insert db select 4,200

--查询出code

select distinct code from db where id in(1,2,3)

select distinct code from db where id =1 or id =4

如果你需要查出表中所有含有多个不同ID的code(不包括一个的),试试下面的:

select distinct code from db group by code having(count(id))>1

select from table1 where id in(select id from table2) 或者

select from table2 where id in(select id from table1)

select from 表 as a where arowid!=(select max(rowid) from 表 as b where aid=bid);

此为oracle中查找相同数据语句,其中里边的“表”指同一张表,where后的条件可以是很多相同的字段相等,即:aid=bid and aname=bname等等

查询1:查询年龄大于30的水手名字

查询2:找出在1998年11月1号之前有预定记录的水手编号。

查询3:找出红色船只的编号和名称。

查询4:找出预订了103号船只的水手的名字。

查询5:找出至少预订了一艘船只的水手的名字。

查询6:找出预订了红色船只的水手的名字。

查询7:找出Lubber预订的船只的颜色。

查询8:找出预订了一艘红色船只或者绿色船只的水手的名字。

查询9:找出同时预订了一艘红色船只和绿色船只的水手的名字。(交集)

查询10:找出年龄在20岁以上而且没有预定一艘红色船只的水手的sid。(差集)

查询11:找出所有预订了名为Interlake船只的水手的名字。

SELECT FROM 表名 WHERE stu_nianji like "2010%" and stu_banji like "信管%"

是这个意思吗?多个条件取交集用AND,取并集用OR,可以举一反三,祝你好运。

基础语句还是select from table

有两种做法:

1使用like+通配符做模糊查询

where col1 like('%' + w1 +'%') and and where col5 like('%' + w5 +'%')

当文本框为空时,因为通配符的存在,该列不会发生过滤这个写法一般用在存储过程中

2拼接语句

where 1=1 and

判断文本,如果为空跳过,不为空则追加sql

if(TextBox1Text!=""){sql+=" and col1="+TextBox1Text;}

因为有1=1存在,所以无论从哪个条件开始追加或者不加,都不会出语法错

以上就是关于sql如何取交集全部的内容,包括:sql如何取交集、sql如何查询两个表的交集、单表查询如何求交集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9732927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存