1
我有三个表,t_group,t_group_linkman,t_linkman
。 T_group可以根据t_group表中的parent_id字段拥有其父组,并且t_linkman根据t_group_linkman表中的group_id字段拥有其父组。现在,我想选择所有组和linkman。因此我编写了sql,但是我发现我有两次搜索该组。可以有人提出一些建议来更改我的sql语句吗?如何在Oracle中使用结果时不仅一次存储sql结果?
(select ''||id as id,parent_id as p_Id,name,null mobileNum1 from t_group)
UNION
(select tgl.group_id|'_'||l.id as id,tgl.group_id as
p_Id,l.name,l.mobile_Num1 from t_linkman l
inner join t_group_linkman tgl on tgl.LINKMAN_ID=l.id
where tgl.GROUP_ID in(select id from t_group
) and l.STATUS='Y')
现在在我的sql语句中,我有两次搜索t_group。
例如,测试数据:
t_group表:
id |parent_id|name
---|---------|-------
1 |0 |group1
2 |0 |group2
3 |2 |group3
t_linkman表:
id|name |mobileNum1
--|---------|-----------
1 |linkman1 |15624157851
2 |linkman2 |15624157852
3 |linkman3 |15624157853
t_group_linkman表:
id|group_id | linkman_id
--|---------|-----------
1 |1 |1
2 |2 |2
3 |3 |3
4 |2 |3
而且我想返回结果LT(所有组和所有联系人):
id |parent_id|name |mobileNum1
----|---------|----------|-----
1 |0 |group1 |null
2 |0 |group2 |null
3 |2 |group3 |null
1_1 |1 |linkman1 |15624157851
2_2 |2 |linkman2 |15624157852
3_3 |3 |linkman3 |15624157853
2_4 |2 |linkman4 |15624157853
可能他们是玛:M.One联系人可以在多个group.And一组能有多个联系人。 – Sarly
[SQL]作为tg_id选择tg.id,tg.parent_id如P_ID,tg.name,l.mobileNum1 从(t_group TG INNER JOIN t_group_linkman TGL上tgl.group_id = tg.id)作为join1 LEFT JOIN t_linkman升在tgl.LINKMAN_ID = join1.id [错误] ORA-00933:SQL命令未正确结束 – Sarly
好的,给我几分钟来解决这个问题。错过了一个重要部分 –