有就返回,没有就补空,怎样写

cer 2004-04-01 12:04:24
有个sql语句的要问:
SELECT a.id,a.name,b.time FROM tableone a,tabletwo b WHERE a.id='bb' AND a.name=b.aname
这样子当b内没有a的name相对应的项时,一条者不返回,那么我希望,当b内有想对应的项就返回所有,而b内没有时就返回一项,b.time就为空,怎么写?(也就是还是返回name和id而time填空)
...全文
89 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小谁家老谁 2004-07-06
  • 打赏
  • 举报
回复
mark
zjcxc 元老 2004-04-01
  • 打赏
  • 举报
回复
SELECT a.id,a.name,time=isnull(b.time,'')
FROM tableone a
left join tabletwo b on a.name=b.aname
WHERE a.id='bb'
cer 2004-04-01
  • 打赏
  • 举报
回复
谢各位了,给分
wsnow002 2004-04-01
  • 打赏
  • 举报
回复
同意 j9988(j9988)与progress99(如履薄冰) 的写法
progress99 2004-04-01
  • 打赏
  • 举报
回复
SELECT a.id,a.name,b.time
FROM table1 a
LEFT JOIN table2 b ON a.id=b.id
WHERE a.id='bb'
leeboyan 2004-04-01
  • 打赏
  • 举报
回复
如果不像显示为null,比如想显示为' '
SELECT a.id,a.name,isnull(b.time,' ') FROM tableone a left join tabletwo b on a.id='bb' AND a.name=b.aname

leeboyan 2004-04-01
  • 打赏
  • 举报
回复
左连结
--建表table1,table2:
create table table1(id int,name varchar(10))
create table table2(id int,score int)
insert into table1 select 1,'lee'
insert into table1 select 2,'zhang'
insert into table1 select 4,'wang'
insert into table2 select 1,90
insert into table2 select 2,100
insert into table2 select 3,70
左连接:left join 或 left outer join
(1)左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
(2)sql语句
select * from table1 left join table2 on table1.id=table2.id
-------------结果-------------
id name id score
------------------------------
1 lee 1 90
2 zhang 2 100
4 wang NULL NULL
------------------------------
注释:包含table1的所有子句,根据指定条件返回table2相应的字段,不符合的以null显示
j9988 2004-04-01
  • 打赏
  • 举报
回复
SELECT a.id,a.name,b.time FROM tableone a left join tabletwo b on a.id='bb' AND a.name=b.aname

34,590

社区成员

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

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