用下面的例子说明一下,看看有什么区别吧 create table a (a varchar(10),b int); insert into a values('ddd',10); insert into a values('aaa',20); insert into a values('ccc',30); create table b (a varchar(10),k varchar(20))insert into b values('ddd','ok'); insert into b values('ddd','no'); insert into b values('aaa','ddd'); insert into b values('aaa','ok');select * from a left join b on a.a=b.a and b.k='ok' //显示的是a表中的所有记录,b表中(b.k='ok') 与a表中有关系的记录 //也就是说,这里用b.k='ok'的记录与a表时行左,连接. ddd 10 ddd ok aaa 20 aaa ok ccc 30 NULL NULL select * from a left join b on a.a=b.a where b.k='ok' //这里是先查询select * from a left join b on a.a=b.a 然后,再过滤出b.k='ok'的记录,所以就是2条了. //也就是这晨用a与b表时行完左连接后,再进行一次筛选. ddd 10 ddd ok aaa 20 aaa ok不知这样描述能否明白.
能这样写? select A left jion B on A.字段=B.字段 and B.字段=K select A left jion B on A.字段=B.字段 where B.字段=K 这样写是错的 还有 你想要什么啊 就要‘字段=k'? 这样写好了 select * from (select a.字段 from a , b where a.字段=b.字段) where 字段='k' 我在SQL上运行下就自动写成这样了 SELECT * FROM (SELECT a.字段 FROM ceshi1 a, ceshi2 b WHERE a.字段 = b.字段) DERIVEDTBL WHERE (字段 = 'k') 多了个这个”DERIVEDTBL“ 你问有什么区别 先写对SQL 你的第二个那样写的话可能运不过去(我说的是在后面加个where b.字段='k') 应该是个错的句子
create table a (a varchar(10),b int);
insert into a values('ddd',10);
insert into a values('aaa',20);
insert into a values('ccc',30);
create table b (a varchar(10),k varchar(20))insert into b values('ddd','ok');
insert into b values('ddd','no');
insert into b values('aaa','ddd');
insert into b values('aaa','ok');select * from a left join b on a.a=b.a and b.k='ok'
//显示的是a表中的所有记录,b表中(b.k='ok') 与a表中有关系的记录
//也就是说,这里用b.k='ok'的记录与a表时行左,连接.
ddd 10 ddd ok
aaa 20 aaa ok
ccc 30 NULL NULL
select * from a left join b on a.a=b.a where b.k='ok'
//这里是先查询select * from a left join b on a.a=b.a 然后,再过滤出b.k='ok'的记录,所以就是2条了.
//也就是这晨用a与b表时行完左连接后,再进行一次筛选.
ddd 10 ddd ok
aaa 20 aaa ok不知这样描述能否明白.
select A left jion B on A.字段=B.字段 and B.字段=K
select A left jion B on A.字段=B.字段 where B.字段=K
这样写是错的
还有
你想要什么啊
就要‘字段=k'?
这样写好了
select * from (select a.字段 from a , b where a.字段=b.字段)
where 字段='k'
我在SQL上运行下就自动写成这样了
SELECT *
FROM (SELECT a.字段
FROM ceshi1 a, ceshi2 b
WHERE a.字段 = b.字段) DERIVEDTBL
WHERE (字段 = 'k')
多了个这个”DERIVEDTBL“
你问有什么区别
先写对SQL
你的第二个那样写的话可能运不过去(我说的是在后面加个where b.字段='k')
应该是个错的句子