簡體   English   中英

如何從兩個具有不同字段名稱的不同表中獲取數據

[英]How to get data from two different tables with different field names

我試圖從具有不同字段名稱的兩個不同表中獲取數據,例如,

表格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

它顯示這樣的結果

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
)

如果您具有名稱不同的不同字段,則不應將它們返回到相同位置。 您可以使用空值來填充空白插槽。 因此,您可以執行以下操作:

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 在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM