[英]How to create a new table by joining 2 tables with same columns in MySQL
[英]How to query UNION over same table and create new columns mysql?
我需要所有X值用於選定的ID,並且如果相等則統一時間戳。 我想使用php訪問此表並獲取結果。
這有可能嗎?
我想從時間戳按數據組選擇id = 1,id = 2,id = 3,id = 5; 有很多ID,但是我需要一個查詢,在這里我可以選擇ID並獲得將來自不同ID的多個x值的相等時間戳組合在一起的結果。
Table'data'
+--+-------+--------+---+--+---------+------+
|id| timestamp | Name | X | Y | other|
+--+-------+--------+---+--+---------+------+
| 1|1.01.14 19:59:21| Müller | 3 | 1 | 1|
| 2|1.01.14 19:59:21| Schmidt| 5 | 2 | 2|
| 3|1.01.16 20:59:22| Taler | 6 | 3 | 1|
| 5|1.01.14 19:59:21| Paul | 10| 2 | 3|
+--+-------+--------+---+--+---------+------+
需要輸出:
Table'data'
+----------------+------+------+------+------+-- -+ ---+----+----+
| timestamp | id | id | id | id | X | X | X | X |
+----------------+------+------+------+------+-- -+ ---+--- +----+
|1.01.14 19:59:21| 1 | 2 | null | 5 | 3 | 5 |null| 10 |
|1.01.16 20:59:22| null| null| 3 | null|null|null| 6 |null|
+----------------+------+------+------+------+----+----+----+----+
OR:
Table'data' Output:
+----------------+------+------+------+------+
| timestamp | id | id | id | id |
+----------------+------+------+------+------+
|1.01.14 19:59:21| 3 | 5 |null | 10 |
|1.01.16 20:59:22|null |null | 6 | null |
+----------------+------+------+------+------+
假設你知道的id
值,可以使用conditional aggregation
到pivot
結果:
select timestamp,
max(case when id = 1 then id end) id1,
max(case when id = 2 then id end) id2,
max(case when id = 3 then id end) id3,
max(case when id = 5 then id end) id5,
max(case when id = 1 then x end) x1,
max(case when id = 2 then x end) x2,
max(case when id = 3 then x end) x3,
max(case when id = 5 then x end) x5
from yourtable
group by timestamp
我假設對於1.01.16 20:59:22
6
的值應該在第3個x
,而不是第4個中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.