2014-04-02 40 views
1

我试图从不同领域的两个不同的表获取数据名称,比如两个不同的表如何获得数据,从不同的字段名

表1

user_id user_grp_id 
1   1 
2   1 

表2

cust_id cust_grp_id 
1  2 
2  2 

现在荫使用这样

Select * from table 1 Union All select * from table 2 
0123查询

是表示这样

Array 
(
[0] => Array 
    (
    [user_id] => 1 
    [user_grp_id] => 1 
) 

[1] => Array 
    (
    [user_id] => 2 
    [user_grp_id] => 1 
) 
[2] => Array 
    (
    [user_id] => 1 
    [user_grp_id] => 2 
) 

[3] => Array 
    (
    [user_id] => 2 
    [user_grp_id] => 2 
) 

结果现在,我们可以看到第二个表下的第一个表的字段名也来了结果,但我想是这样的结果。

Array 
(
[0] => Array 
    (
    [user_id] => 1 
    [user_grp_id] => 1 
) 

[1] => Array 
    (
    [user_id] => 2 
    [user_grp_id] => 1 
) 
[2] => Array 
    (
    [cust_id] => 1 
    [cust_grp_id] => 2 
) 

[3] => Array 
    (
    [cust_id] => 2 
    [cust_grp_id] => 2 
) 

我该如何达到这种结果。

编辑

在答案中给出的查询结果是

Array 
(
[0] => Array 
    (
    [user_id] => 1 
    [user_grp_id] => 1 
    [cust_id] => NULL 
    [cust_grp_id] => NULL 
) 

[1] => Array 
    (
    [user_id] => 2 
    [user_grp_id] => 1 
    [cust_id] => NULL 
    [cust_grp_id] => NULL 
) 
[2] => Array 
    (
    [user_id] => NULL 
    [user_grp_id] => NULL 
    [cust_id] => 1 
    [cust_grp_id] => 2 
) 

[3] => Array 
    (
    [user_id] => NULL 
    [user_grp_id] => NULL 
    [cust_id] => 2 
    [cust_grp_id] => 2 
) 
+0

做你得到回答或不.. – jmail

+0

不,我没有得到答案。 – Waseem

+0

你有没有看到这个链接http://sqlfiddle.com/#!2/786795/4 – jmail

回答

5

如果你有,你不应该在同一个位置返回他们不同的名字不同的领域。您可以使用空值填充空插槽。 所以,你可以做这样的事情:

SELECT user_id, user_grp_id, NULL AS cust_id, NULL AS cust_grp_id FROM table1 
UNION ALL 
SELECT NULL AS user_id, NULL AS user_grp_id, cust_id, cust_grp_id FROM table2 

sqlfiddle here

+0

抱歉说,但它没有显示我想要的结果,前两个数组与我的结果在问题中相同但后面的两个数组显示具有相同字段名称的空值,即'user_id'和'user_grp_id' – Waseem

+0

如果这些字段的值为null,那么问题是什么?只是忽略他们 –

+0

顺便说一句,你应该执行两个不同的查询... – rikpg

相关问题