急求一个SQL的实现,各位帮看看,谢谢~

MySql 码拜 9年前 (2016-02-15) 877次浏览
有A、B两个表,A表结构如下:
字段:id     name
记录:1      ABC
B表如下:
字段:id     name
记录:1      ABC
记录:2      ABC
记录:3      DEF
那么本人现在想找出B表中的第二条记录,把符合这种条件的数据全部找出来,本人写了一个语句,但是把B表中第三条记录也找出来了,这是本人不想要的结果,本人的SQL如下,请帮忙改正一下,谢谢~
SELECT
b.id,
b.name
FROM
B b
LEFT JOIN A b ON a.name = b.name
AND a.id = b.id
WHERE
a.nameIS NULL:
这个语句找出来的记录是:
记录:2      ABC
记录:3      DEF
但是本人只想找出:
记录:2      ABC
解决方案

30

select * from B b where exists (select 1 from A where b.name=name and b.id<>id);

10

SELECT
b.id,
b.name
FROM
(SELECT b.id,b.name FROM B b
JOIN a a
ON b.name = a.name) b
LEFT JOIN A a ON a.name = b.name
AND a.id = b.id
WHERE
a.name IS NULL;

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明急求一个SQL的实现,各位帮看看,谢谢~
喜欢 (0)
[1034331897@qq.com]
分享 (0)