SQL中 我想要查询集合id中,对应表的id不在集合id中的值,有点乱,我举例说: 如图 5
5个回答
推荐于2017-06-15
展开全部
CREATE TABLE A (id int);
CREATE TABLE B (id int);
INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);
INSERT INTO B VALUES(1);
INSERT INTO B VALUES(2);
INSERT INTO B VALUES(3);
INSERT INTO B VALUES(4);
INSERT INTO B VALUES(5);
GO
上面为 测试表 + 测试数据
下面为查询语句 与查询结果
1> -- 方法1: 用 NOT IN
2> SELECT * FROM B WHERE id NOT IN ( SELECT id FROM A );
3> GO
id
-----------
4
5
(2 行受影响)
1>
2> -- 方法2: 用 NOT EXISTS
3> SELECT * FROM B WHERE NOT EXISTS ( SELECT id FROM A WHERE A.id = B.id );
4> GO
id
-----------
4
5
(2 行受影响)
1>
2> -- 方法3: 用 LEFT JOIN
3> SELECT B.* FROM B LEFT JOIN A ON (B.id = A.id) WHERE A.id IS NULL;
4> GO
id
-----------
4
5
(2 行受影响)
1>
2> -- 方法4:用 EXCEPT
3> SELECT * FROM B EXCEPT SELECT * FROM A;
4> GO
id
-----------
4
5
(2 行受影响)
追问
首先表示谢谢。如果是两张表的话 我这些方法都会。只是实际上是,从一个列表B中(js页面)选择几个数据(checkbox),不是选择所有的,筛选出选择的数据中A表中不关联的数据。
展开全部
Select id
From 有一个id集合
Where id not in (select id from 表A)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select id from table where id not in (select id from A)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说明下,首先你要确保在A中有的都会在有一个这个表里面存在,就是不会存在A中有id 0而 有一个表中没有,你应该把情况都说清楚了,之后才能得到准确的答案,不然你运行不好的如果是以上那种情况的话现在我写了个脚本给你
select
B.id
from
B
where
B.id not in (select A.id from A);
当然这个sql文对应oracle和mysql 还有sqlite时不一样的,总之都差不多,你改改就能用,不过我上面提到的你应该想清楚
select
B.id
from
B
where
B.id not in (select A.id from A);
当然这个sql文对应oracle和mysql 还有sqlite时不一样的,总之都差不多,你改改就能用,不过我上面提到的你应该想清楚
追问
首先表示谢谢。如果是两张表的话 我这些方法都会。只是实际上是,从一个列表B中(js页面)选择几个数据(checkbox),不是选择所有的,筛选出选择的数据中A表中不关联的数据。
追答
呵呵,那就更简单了啊,你要传入一个参数,也就是说你要用pro 而不是直接的sql文,pro 的in参数是你的选择的id,命名为inParameter,但是你要把参数编辑成这种方式:‘0,1,2’ 这种方式,之后呢用这个sql文跑出out结果 out 参数的命名为outResult(这个outResult是指针类型,在数据库里叫游标)
select
A.id into outResult
from A
where
a.id not in inParameter
当然了我这么些肯定不对,因为最好是把sql文放到字符串里,之后运行字符串把结果放到游标里,这样好点儿,总结老说吧,你首先出发点没搞对,定性为pro或者function而不是简单的sql文,因为要传入参数和传出参数。如果你用ibatis之类的东西的话这些都很简单
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select b.id from a,b where a.id<>b.id
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询