left join 连接问题

wch_212 2011-04-12 08:17:17


select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm , T t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and t2.xzqh_dm=t1.ssfw group by t.mc,t1.mc,t2.mc order by t2.mc



我还想对T_SQ这个表再连接个表查询怎么做?
...全文
119 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
304的的哥 2011-04-13
  • 打赏
  • 举报
回复
自学成才!
wch_212 2011-04-13
  • 打赏
  • 举报
回复
加了,一堆 left join on .
wch_212 2011-04-13
  • 打赏
  • 举报
回复
自己解决了……
304的的哥 2011-04-13
  • 打赏
  • 举报
回复

--原句:怎么T表重复出现两次?加‘*’号的地方,
select (t2.mc||t1.mc||t.mc) as mc,
count(tsq.xq_dm)
from T t left join T_SQ tsq
on tsq.xq_dm=t.xzqh_dm ,
*T t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and
t2.xzqh_dm=t1.ssfw
group by t.mc,t1.mc,t2.mc
order by t2.mc
--难道是这样
select (t2.mc||t1.mc||t.mc) mc,
count(tsq.xq_dm) xq_dm
from T t left join T_SQ tsq
on tsq.xq_dm=t.xzqh_dm
left join new_table nt
on tsq.id=nt.id,
T1 t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and
t2.xzqh_dm=t1.ssfw
group by t.mc,t1.mc,t2.mc
order by t2.mc
--不管怎么样,你的表字段命名太丑了,用英文单词多好记啊!
--我想着也是影响你的一个原因吧!
wch_212 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bobo12082119 的回复:]

引用 9 楼 wch_212 的回复:

引用 8 楼 bobo12082119 的回复:

SQL code

--不知道可不可以
select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm
left join new_table n……
[/Quote]

不是,只有一条匹配的。
304的的哥 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wch_212 的回复:]

引用 8 楼 bobo12082119 的回复:

SQL code

--不知道可不可以
select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm
left join new_table nt on T_SQL.id=nt.id,
T……
[/Quote]
这说明数据库表里面:tsq.xq_dm),nt.id的数量相同
wch_212 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bobo12082119 的回复:]

SQL code

--不知道可不可以
select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm
left join new_table nt on T_SQL.id=nt.id,
T t1 ,T2 t2
where t1.xz……
[/Quote]

这个试过了,能查询出来值 ,不过数不对

我想变成这样 红色的是新加的

可是数和蓝色的一样了

select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)count(nt.id)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm
left join new_table nt on T_SQL.id=nt.id,
T t1 ,T2 t2
where t1.xz……
wch_212 2011-04-12
  • 打赏
  • 举报
回复
304的的哥 2011-04-12
  • 打赏
  • 举报
回复

--不知道可不可以
select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm
left join new_table nt on T_SQL.id=nt.id,
T t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and t2.xzqh_dm=t1.ssfw group by t.mc,t1.mc,t2.mc order by t2.mc
wch_212 2011-04-12
  • 打赏
  • 举报
回复
我补充下吧,


select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm , T t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and t2.xzqh_dm=t1.ssfw group by t.mc,t1.mc,t2.mc order by t2.mc


能查询出来两列

我还想再加一列查询,

加的这一列查询要再用一张表,判断条件和 T_SQ 的一列相同

怎么做?
304的的哥 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bobo12082119 的回复:]
select ......
from t,t_sql,tttd
where t.id(+)=t_sql.id and
t_sql.ttl(+)=tttd.ttl;
[/Quote]
错了!
select ......
from t,t_sql,tttd
where t.id=t_sql.id(+) and
t_sql.ttl=tttd.ttl(+);
一觉睡醒,有点晕
304的的哥 2011-04-12
  • 打赏
  • 举报
回复
select ......
from t,t_sql,tttd
where t.id(+)=t_sql.id and
t_sql.ttl(+)=tttd.ttl;
dawugui 2011-04-12
  • 打赏
  • 举报
回复
刚才没看清楚:
你这段:
left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm , T t1 ,T2 t2

什么乱七八糟的?
dawugui 2011-04-12
  • 打赏
  • 举报
回复
把他做为子查询?

select m1.* , m2.* from m1,
(
select (t2.mc||t1.mc||t.mc) as mc,count(tsq.xq_dm)
from T t left join T_SQ tsq on tsq.xq_dm=t.xzqh_dm , T t1 ,T2 t2
where t1.xzqh_dm=t.ssfw and t2.xzqh_dm=t1.ssfw group by t.mc,t1.mc,t2.mc order by t2.mc
) m2
where ...
wch_212 2011-04-12
  • 打赏
  • 举报
回复

17,377

社区成员

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

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