sql 已列出的列,如何用在子查询中

t4904 2010-09-26 06:31:14
各位大哥。。
我有两个表。。
一个bill 表。。id ,name
一个bills 表 是bill 的明细。。有 bid bname pid
我想做个效果就是。。
select id,name
,(select name from bills where pid =id )
from bill
但是他报错说 id 无效。。
请各位大大帮帮忙!
这只是举个例。。
我只想知道在select 后面已经使用的列 放到子查询中 为什么不行
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
闹铃 2010-09-26
  • 打赏
  • 举报
回复
引用6楼的话
一楼正解
Rotel-刘志东 2010-09-26
  • 打赏
  • 举报
回复
--创建BILL测试表
if object_id('bill') is not null drop table bill
create table bill (id int,[name] varchar(20))
insert into bill
select 1,'aaa' union all
select 2,'bbb'
--创建bills测试表
if object_id('bills') is not null drop table bills
create table bills (bid int,bname varchar(20),pid int )
insert into bills
select 1,'ccc',3 union all
select 2,'ddd',4
--查询
select a.id,b.[bname],a.[name],c.pid from bill a
join bills b on a.id=b.pid
Roni 2010-09-26
  • 打赏
  • 举报
回复
一楼的正解。
「已注销」 2010-09-26
  • 打赏
  • 举报
回复
select id,name 
,bname=(select top 1 name from bills where pid =id )
from bill
dawugui 2010-09-26
  • 打赏
  • 举报
回复
select m.* , n.name from bill m, bills n where m.id = n.pid

select m.* , (select name from bills n where n.pid = m.id) name from bill m
bean_sql 2010-09-26
  • 打赏
  • 举报
回复
select a.id,a.name,b.name from bill a,bills b where a.id=b.pid
ljh_tom 2010-09-26
  • 打赏
  • 举报
回复
相互交流!
bean_sql 2010-09-26
  • 打赏
  • 举报
回复

select a.id,a.name
,(select name from bills where pid =a.id )
from bill a

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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