子查询返回多列的情况

学海无涯-回头是岸 2018-01-05 02:23:28
eg:
select t1.*,(select t2.name,t2.col,t2.pp from t2 where t1.id=t2.id),
t3.details from t1 join t3 on t1.pid=t3.pid


这个地方 (select t2.name,t2.col,t2.pp from t2 where t1.id=t2.id)返回多列
应该怎么写,不用连表的方式。不分开写几条子查询 有办法达到吗?
...全文
1026 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaITOldMan 2018-01-22
  • 打赏
  • 举报
回复
你这种需求用外连接吧
minsic78 2018-01-08
  • 打赏
  • 举报
回复
引用 5 楼 baidu_36457652 的回复:
[quote=引用 4 楼 minsic78的回复:]标量子查询当然只能返回单行单列。 你想怎么写子查询还要看你自己,子查询一次循环匹配到的记录里面,你想要那里面的哪一条?或者是随便一条?
主要是去的字段来自同一张表,子查询条件也同,我就想问问,有没有这种不写几个子查询的 写法。如果没有就算了[/quote] 可以改写成外连接~
  • 打赏
  • 举报
回复
引用 4 楼 minsic78的回复:
标量子查询当然只能返回单行单列。 你想怎么写子查询还要看你自己,子查询一次循环匹配到的记录里面,你想要那里面的哪一条?或者是随便一条?
主要是去的字段来自同一张表,子查询条件也同,我就想问问,有没有这种不写几个子查询的 写法。如果没有就算了
minsic78 2018-01-05
  • 打赏
  • 举报
回复
标量子查询当然只能返回单行单列。 你想怎么写子查询还要看你自己,子查询一次循环匹配到的记录里面,你想要那里面的哪一条?或者是随便一条?
Diza1986 2018-01-05
  • 打赏
  • 举报
回复
不会啊,表连接更灵活吧,想怎么连怎么连,想怎么取怎么取, 只是表连接的开销可能大一点
  • 打赏
  • 举报
回复
引用 1 楼 Diza1986 的回复:
除非拼成一个字段,意义不大,表连接吧
因为我觉得 子查询要灵活得多。比表连接好用
Diza1986 2018-01-05
  • 打赏
  • 举报
回复
除非拼成一个字段,意义不大,表连接吧

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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