2014-04-02 42 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

相關問題