由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - [转载] Can anyone interpret this simple SQL?
相关主题
求解释SQL求助:两个表各自求Count
Merge table with one single query?问一个SQL Server的问题
A sql questionMS T-SQL 问题
今典问题: 这个Self Query咋写?怎么写这个Query,谢谢
誰來幫我開來開悄? Interesting SQL queryHow to write this query
请教2个sql query 问题怎么用sql query 实现这个功能?
谁给我优化一下把重复的产品下架的SQL包子请教query
How to write this loop SQL query?请帮我看看,什么地方错了?
相关话题的讨论汇总
话题: insert话题: values话题: table话题: null话题: sql
进入Database版参与讨论
1 (共1页)
w*****y
发帖数: 35
1
【 以下文字转载自 Programming 讨论区,原文如下 】
发信人: wellboy (好男孩- MITBBS MEMBER SINCE 1998), 信区: Programming
标 题: Can anyone interpret this simple SQL?
发信站: Unknown Space - 未名空间 (Fri Jan 14 12:13:55 2005) WWW-POST
Access->Queries->New->Find Unmatched Query Wizard->"this wizard creates a
query that finds records in one table that have no related records in another
table"
SELECT A.ID
FROM A LEFT JOIN B ON A.ID = B.ID
WHERE (B.ID Is Null)
What does this SQL mean?
HELP!
n****f
发帖数: 905
2

another
This is a BAD SQL, DO NOTHING.
NO row will be returned.

【在 w*****y 的大作中提到】
: 【 以下文字转载自 Programming 讨论区,原文如下 】
: 发信人: wellboy (好男孩- MITBBS MEMBER SINCE 1998), 信区: Programming
: 标 题: Can anyone interpret this simple SQL?
: 发信站: Unknown Space - 未名空间 (Fri Jan 14 12:13:55 2005) WWW-POST
: Access->Queries->New->Find Unmatched Query Wizard->"this wizard creates a
: query that finds records in one table that have no related records in another
: table"
: SELECT A.ID
: FROM A LEFT JOIN B ON A.ID = B.ID
: WHERE (B.ID Is Null)

aw
发帖数: 127
3
嗯?没错啊?找出A TABLE里有,而B里没有的RECORDS啊?

【在 n****f 的大作中提到】
:
: another
: This is a BAD SQL, DO NOTHING.
: NO row will be returned.

n**m
发帖数: 255
4
DROP TABLE A;
DROP TABLE B;
COMMIT;
CREATE TABLE A (ID INT);
CREATE TABLE B (ID INT);
COMMIT;

INSERT INTO A VALUES(1);
INSERT INTO A VALUES(2);
INSERT INTO A VALUES(3);
INSERT INTO A VALUES(NULL);

INSERT INTO B VALUES(3);
INSERT INTO B VALUES(4);

【在 aw 的大作中提到】
: 嗯?没错啊?找出A TABLE里有,而B里没有的RECORDS啊?
n**m
发帖数: 255
5
Nmamtf talked about inner join:
SELECT A.ID
FROM A INNER JOIN B ON A.ID = B.ID
WHERE (B.ID Is Null)

【在 n****f 的大作中提到】
:
: another
: This is a BAD SQL, DO NOTHING.
: NO row will be returned.

w*****y
发帖数: 35
6
WHERE (B.ID Is Null)
如何解释?
糊涂了。

a

【在 n**m 的大作中提到】
: Nmamtf talked about inner join:
: SELECT A.ID
: FROM A INNER JOIN B ON A.ID = B.ID
: WHERE (B.ID Is Null)

w*****y
发帖数: 35
7
嗯。高人啊。
同属易懂的解释一下WHERE (B.ID Is Null) 的道理好吧?

【在 n**m 的大作中提到】
: DROP TABLE A;
: DROP TABLE B;
: COMMIT;
: CREATE TABLE A (ID INT);
: CREATE TABLE B (ID INT);
: COMMIT;
:
: INSERT INTO A VALUES(1);
: INSERT INTO A VALUES(2);
: INSERT INTO A VALUES(3);

aw
发帖数: 127
8
很简单啊。
如果这样你是不是容易理解点?
SELECT A.ID,B.ID
FROM A LEFT JOIN B ON A.ID = B.ID
WHERE (B.ID Is Null)
假设A
ID VAL
1 100
2 200
3 300
B:
ID VAL
1 100
2 200
QUERY(如果不加B.ID IS NULL)得:
1 1
2 2
3 NULL
加上得:
3 NULL。
**********************
然后WHERE前面去掉B.ID也一样得到3这个ID。
这种QUERY TRICK经常用到,即用LEFT JOIN做个类似减的操作。

【在 w*****y 的大作中提到】
: 嗯。高人啊。
: 同属易懂的解释一下WHERE (B.ID Is Null) 的道理好吧?

w*****y
发帖数: 35
9
谢谢。
我关键没有充分理解Left Join 的含义。 现在知道了。
Also recommend http://www.w3schools.com/sql/sql_join.asp for those who are
still as confused as I used to be :)
非常感谢AW!

【在 aw 的大作中提到】
: 很简单啊。
: 如果这样你是不是容易理解点?
: SELECT A.ID,B.ID
: FROM A LEFT JOIN B ON A.ID = B.ID
: WHERE (B.ID Is Null)
: 假设A
: ID VAL
: 1 100
: 2 200
: 3 300

w*****y
发帖数: 35
10
问题 :
可以用:
SELECT A.ID from A
where A.ID Not In
(Select B.ID from B)
吗?
有效率差别吗?
谢谢。

【在 aw 的大作中提到】
: 很简单啊。
: 如果这样你是不是容易理解点?
: SELECT A.ID,B.ID
: FROM A LEFT JOIN B ON A.ID = B.ID
: WHERE (B.ID Is Null)
: 假设A
: ID VAL
: 1 100
: 2 200
: 3 300

aw
发帖数: 127
11
NOT IN是非常不好的SQL(效率上),应尽可能避免。

【在 w*****y 的大作中提到】
: 问题 :
: 可以用:
: SELECT A.ID from A
: where A.ID Not In
: (Select B.ID from B)
: 吗?
: 有效率差别吗?
: 谢谢。

1 (共1页)
进入Database版参与讨论
相关主题
请帮我看看,什么地方错了?誰來幫我開來開悄? Interesting SQL query
Good query book recommendation needed, thank you请教2个sql query 问题
急问Access Query问题:怎样查询最后一个非空的数值,谢谢谁给我优化一下把重复的产品下架的SQL
[Mysql] how to return NULL count in group by query (转载)How to write this loop SQL query?
求解释SQL求助:两个表各自求Count
Merge table with one single query?问一个SQL Server的问题
A sql questionMS T-SQL 问题
今典问题: 这个Self Query咋写?怎么写这个Query,谢谢
相关话题的讨论汇总
话题: insert话题: values话题: table话题: null话题: sql