[英]Select timestamps with different field names from two tables, and order them?
[英]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.