不太会用sql语句中的not exists来写语句啊?谁能举几个例子教教我啊!~!!
5个回答
展开全部
使用 NOT EXISTS 的子查询
NOT EXISTS 与 EXISTS 的工作方式类似,只是如果子查询不返回行,那么使用 NOT EXISTS 的 WHERE 子句会得到令人满意的结果。
例如,要查找不出版商业书籍的出版商的名称:
USE pubs
SELECT pub_name
FROM publishers
WHERE NOT EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
下面是结果集:
pub_name
----------------------------------------
Binnet & Hardley
Five Lakes Publishing
Ramona Publishers
GGG&G
Scootney Books
Lucerne Publishing
(6 row(s) affected)
下面的查询查找已经不销售的书的名称。
USE pubs
SELECT title
FROM titles
WHERE NOT EXISTS
(SELECT title_id
FROM sales
WHERE title_id = titles.title_id)
下面是结果集:
title
----------------------------------
The Psychology of Computer Cooking
Net Etiquette
(2 row(s) affected)
NOT EXISTS 与 EXISTS 的工作方式类似,只是如果子查询不返回行,那么使用 NOT EXISTS 的 WHERE 子句会得到令人满意的结果。
例如,要查找不出版商业书籍的出版商的名称:
USE pubs
SELECT pub_name
FROM publishers
WHERE NOT EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
下面是结果集:
pub_name
----------------------------------------
Binnet & Hardley
Five Lakes Publishing
Ramona Publishers
GGG&G
Scootney Books
Lucerne Publishing
(6 row(s) affected)
下面的查询查找已经不销售的书的名称。
USE pubs
SELECT title
FROM titles
WHERE NOT EXISTS
(SELECT title_id
FROM sales
WHERE title_id = titles.title_id)
下面是结果集:
title
----------------------------------
The Psychology of Computer Cooking
Net Etiquette
(2 row(s) affected)
展开全部
来个例子,然后详细说明。
SELECT * FROM anken_m WHERE NOT EXISTS(
SELECT my_list_temp_m.sales_code
FROM my_list_temp_m
WHERE my_list_temp_m.sales_code=anken_m.sales_code)
说明:
1) 查询在anken_m表中存在,但是在my_list_temp_m表中不存在的sales_code。
2) sales_code是anken_m的主键,my_list_temp_m的外键。
注意:
1) 外层查询表anken_m是查询的对象。
2) 内层查询表my_list_temp_m是条件对象。
3) 内外层的查询表不能相同。
4) 作为关联条件的anken_m表不需要在内层查询FROM后添加。
5) my_list_temp_m.sales_code=anken_m.sales_code条件的左右顺序不影响查询结果。
SELECT * FROM anken_m WHERE NOT EXISTS(
SELECT my_list_temp_m.sales_code
FROM my_list_temp_m
WHERE my_list_temp_m.sales_code=anken_m.sales_code)
说明:
1) 查询在anken_m表中存在,但是在my_list_temp_m表中不存在的sales_code。
2) sales_code是anken_m的主键,my_list_temp_m的外键。
注意:
1) 外层查询表anken_m是查询的对象。
2) 内层查询表my_list_temp_m是条件对象。
3) 内外层的查询表不能相同。
4) 作为关联条件的anken_m表不需要在内层查询FROM后添加。
5) my_list_temp_m.sales_code=anken_m.sales_code条件的左右顺序不影响查询结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
table1 a,b,c,d
table2 a,w,e,r
table1 中的a 与 table2中的 a 是同一个字段,但是table1.a 中的值与table2.a中的值不同,就是查询table1 与 table2中不同的a字段的值。
select a from table1 where not exists(select a from table2)
table2 a,w,e,r
table1 中的a 与 table2中的 a 是同一个字段,但是table1.a 中的值与table2.a中的值不同,就是查询table1 与 table2中不同的a字段的值。
select a from table1 where not exists(select a from table2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
被人先回答了 又得不到分了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a 回答即可得2分,回答被采纳则获得悬赏分以及奖励20分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询