2015-10-05 58 views
0

如何在两个不同的列中显示“名称”的结果,例如,它有2个不同的值从第一个查询我名字段有联系,而从第二个查询我的名字领域得到了Mobile_user,我期望的结果会呈现出两种不同的领域列“名称”具有不同的值,我想在两个不同的列中显示这些值。但是如何?

SELECT   T1.autgro_id id, 
       T1.name, 
       T2.use_id 
FROM    adm_auth_groups_wv T1 
       INNER JOIN adm_user_auth_groups_wv T2 
       ON T1.autgro_id=T2.autgro_id 
       INNER JOIN ym_customers_wv T3 
       ON T1.cus_id=T3.cus_id 
WHERE   T3.cus_id_parent = 4 
       AND T2.use_id =24 

UNION All 

SELECT   T1.autgro_id id, 
       T1.name, 
       T2.use_id 
FROM    adm_auth_groups_wv T1 
       INNER JOIN adm_user_auth_groups_wv T2 
       ON T1.autgro_id = T2.autgro_id 
WHERE   yard_functions_pkg.get_parent_from_cus_id(T1.cus_id) = 4 AND 
       T1.autgro_id 
       NOT IN   
       (SELECT 
       T2.autgro_id 
       FROM 
       adm_user_auth_groups_wv T2 
       WHERE 
       T2.use_id=24) 
+0

两个不同的值是逗号分隔或原子? –

+2

你能向我们展示样本数据,所以我们可以看到姓名字段是如何存储的? –

+0

@AnkitBajpai像“管理员”,Mobile_user” – Ahmad

回答

0

使用在两个查询虚拟列admin和mobile_user,填充第一个查询中有一列,第二个查询中有一列。

SELECT   T1.autgro_id id, 
       T1.name admin_user, 
       null mobile_user, 
       T2.use_id 
FROM    adm_auth_groups_wv T1 
       INNER JOIN adm_user_auth_groups_wv T2 
       ON T1.autgro_id=T2.autgro_id 
       INNER JOIN ym_customers_wv T3 
       ON T1.cus_id=T3.cus_id 
WHERE   T3.cus_id_parent = 4 
       AND T2.use_id =24 
UNION All 
SELECT   T1.autgro_id id, 
       null admin_user, 
       T1.name mobile_user, 
       T2.use_id 
FROM    adm_auth_groups_wv T1 
       INNER JOIN adm_user_auth_groups_wv T2 
       ON T1.autgro_id = T2.autgro_id 
WHERE   yard_functions_pkg.get_parent_from_cus_id(T1.cus_id) = 4 AND 
       T1.autgro_id 
       NOT IN   
       (SELECT 
       T2.autgro_id 
       FROM 
       adm_user_auth_groups_wv T2 
       WHERE 
       T2.use_id=24) 
+0

thanks @martin,你已经解决了我的问题 – Ahmad

+0

@Ahmad不客气,请点击答案左边的灰色复选标记,接受我的回答。 –

相关问题