关于一个SQL语句 谢谢

lovebeyondforever 2007-10-11 04:19:46
SELECT see_ok,mail_time,mail_id,mail_title,mail_from FROM [mail_to] WHERE mail_to= 'xx


SELECT see_ok,mail_time,mail_id,mail_title,mail_from,member_base.member_id FROM [mail_to] INNER JOIN
member_base on mail_to.mail_from=member_base.member_name WHERE [mail_to].mail_to= 'xx '

请问为什么查询的结果是不同的了?
要怎么才能是相同的查询结果? 谢谢

刚开始那个帖子没分
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2007-10-11
  • 打赏
  • 举报
回复
你加了条件:on mail_to.mail_from = member_base.member_name
应该是member_base里面的mail_from 比 mail_to 少.

可尝试用left join
SELECT a.see_ok,a.mail_time,a.mail_id,a.mail_title,a.mail_from,b.member_id FROM [mail_to] a
left join member_base b
on a.mail_from = b.member_name WHERE a.mail_to= 'xx'
晓风残月0110 2007-10-11
  • 打赏
  • 举报
回复
要想查询的结果相同,需要mail_to= 'xx '条件的记录都在
on mail_to.mail_from=member_base.member_name
mail_to.mail_from 是member_base.member_name 的子集
子陌红尘 2007-10-11
  • 打赏
  • 举报
回复
前一个查询只涉及了[mail_to]表,而后者还涉及了[member_base]表,表与表内连接的结果会出现如下可能:

两表关联记录完全一一对应,则输出的结果相同;

两表关联记录存在一对多的情况,则输出结果不同;

如果关联记录存在一对无的情况,则输出结果也不同。

34,590

社区成员

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

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