LEFT OUTER JOIN

Dision LI 2010-11-12 04:08:42

SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据

LEFT OUTER JOIN datasource..AttenResultA A ON A.EmpID = PAPersonInfo.EmpID
WHERE A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')
--关联上从表怎么数据变少了,有些数据在从表不存在

我想显示主表所有的360条数据,从表的数据有则显示,无则为空
...全文
64 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fpzgm 2010-11-12
  • 打赏
  • 举报
回复
将where 条件写到on里面

因为主表的有的数据不满足where后的条件就没了
dawugui 2010-11-12
  • 打赏
  • 举报
回复
上面的应该只要(我还以为你的yea是时间字段,其实你只是个年份字段):

SELECT PAPersonInfo.*,a.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON PAPersonInfo.EmpID = A.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')


--小F-- 2010-11-12
  • 打赏
  • 举报
回复
SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据

LEFT OUTER JOIN datasource..AttenResultA A ON A.EmpID = PAPersonInfo.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')
dawugui 2010-11-12
  • 打赏
  • 举报
回复
SELECT PAPersonInfo.*,a.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON PAPersonInfo.EmpID = A.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')

SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON PAPersonInfo.EmpID = A.EmpID
and convert(varchar(7),A.Yea,120) = '2010-08'
jwdream2008 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dawugui 的回复:]
SQL code
SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON A.EmpID = PAPersonInfo.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH……
[/Quote]
「已注销」 2010-11-12
  • 打赏
  • 举报
回复
WHERE A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')
====
把这些都写到on 里面去
SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据

LEFT OUTER JOIN datasource..AttenResultA A
ON A.EmpID = PAPersonInfo.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')

dawugui 2010-11-12
  • 打赏
  • 举报
回复
SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON A.EmpID = PAPersonInfo.EmpID
and A.Yea = YEAR('2010-08-30')
AND A.mon = MONTH('2010-08-30')

SELECT PAPersonInfo.*,w.sex
FROM PAPersonInfo --这个主表有360条数据
LEFT OUTER JOIN datasource..AttenResultA A ON A.EmpID = PAPersonInfo.EmpID
and convert(varchar(7),A.Yea,120) = '2010-08'
fpzgm 2010-11-12
  • 打赏
  • 举报
回复
w.sex?
「已注销」 2010-11-12
  • 打赏
  • 举报
回复
你这个左连接没有问题的呀

34,590

社区成员

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

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