这个外键关联查询sql语句应该怎么写?

cxz7531 2011-09-15 05:15:49
具体情况是这样的:
一个活动表Activity,字段如下
id name taskId

另一个是任务表Task,字段如下
id name person
其中Activity表的taskId字段关联Task的id


我想取出每一个活动的执行人也就是person字段
一般查询是:
select t1.id,t1.name,t2.person from Activity t1,Task t2 where t1.taskId=t2.id

但这种情况下Activity中的taskId可能为null,按照上述语句就少了一条记录,我希望在这种情况下查出的t2.person 也为null,应该怎么写才简洁??

...全文
1467 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2011-09-15
  • 打赏
  • 举报
回复
以上都是正确的
灰哥 2011-09-15
  • 打赏
  • 举报
回复
看了好久,他那sql就差一步,(左联),他用的是内联所以只把能关联的数据弄出来了.
select t1.id,t1.name,t2.person from Activity t1,Task t2 where t1.taskId=t2.id(+)
这样应该也行.

luoyoumou 2011-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzd_83 的回复:]

SQL code
select t.id,t1.name,t2.person
from Activity t1
left join Task t2
on t1.taskId=t2.id
[/Quote]

-- left join 是正解!
Kobayashi 2011-09-15
  • 打赏
  • 举报
回复
就是楼上的解法。。。
Rotel-刘志东 2011-09-15
  • 打赏
  • 举报
回复
select t.id,t1.name,t2.person
from Activity t1
left join Task t2
on t1.taskId=t2.id

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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