??如何查询两个相同结构表中的主键相同的记录??????

cjlong 2003-10-15 09:22:03
这是我写的一个查询

SELECT B01t.*
FROM B01t LEFT JOIN B01 ON [B01t].[B00]=[B01].[B00]
WHERE ([B01].[B00] Is Not Null);

我看了很久,没有发现错误
为什么有的时候就能查询的重复记录,有的时候却在有主键相同的记录时,查询结果为空
...全文
172 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aierong 2003-10-15
  • 打赏
  • 举报
回复
SELECT B01t.*
FROM B01t LEFT JOIN B01 ON [B01t].[B00]=[B01].[B00]
WHERE ([B01].[B00] Is Not Null);

是左连接,是把B01t 表里面的全部显示,当然会有重复情况出现

推荐用 inner join 或子查询
大家都写了很多方法啦
pengdali 2003-10-15
  • 打赏
  • 举报
回复
select * from B01t where B00 in (select B00 from B01)

这样也保证,且不会应为b01重复而重复。
cjlong 2003-10-15
  • 打赏
  • 举报
回复
对不起!先谢谢各位了,

我上面的思路讲的不是很清楚,用LEFT JOIN 是为了保证B01T中的全部数据
friendliu 2003-10-15
  • 打赏
  • 举报
回复
select * from B01t a,B01 b where a.B00=b.B00 and a.B00 is not null
txlicenhe 2003-10-15
  • 打赏
  • 举报
回复
楼主的写法应该也是对的。

不过推荐用 inner join 或 直接用 join
SELECT B01t.*
FROM B01t INNER JOIN B01 ON [B01t].[B00]=[B01].[B00]
伍子V5 2003-10-15
  • 打赏
  • 举报
回复
另外还要注意你主键的数据类型

yujohny 2003-10-15
  • 打赏
  • 举报
回复
select * from B01t where B00 in (select B00 from B01)
伍子V5 2003-10-15
  • 打赏
  • 举报
回复
SELECT B01t.*
FROM B01t INNER JOIN B01 ON [B01t].[B00]=[B01].[B00]

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧