我有 2 個表 tnHeaders 和 tnData
頭檔案
| fnIDX | 描述 |
|---|---|
| 1 | 小時1 |
| 2 | 小時2 |
| 3 | H3 |
資料
| fnIDX | fnHEADER_IDX | 描述 |
|---|---|---|
| 1 | 1 | d1 |
| 2 | 1 | d2 |
| 3 | 1 | d3 |
| 4 | 2 | d4 |
| 5 | 2 | d5 |
| 6 | 2 | d6 |
| 7 | 3 | d7 |
| 8 | 3 | d8 |
| 9 | 3 | d9 |
并想產生這個輸出
| 輸出 |
|---|
| 小時1 |
| d1 |
| d2 |
| d3 |
| 小時2 |
| d4 |
| d5 |
| d6 |
| H3 |
| d7 |
| d8 |
| d9 |
我可以在代碼中做到這一點沒問題,但我如何在 SQL 中做到這一點?(使服務器作業)
uj5u.com熱心網友回復:
您需要使用UNION ALL用于兩個表的描述并以標題位于其資料之上的方式對結果進行排序:
SELECT fnOUTPUT
FROM (
SELECT fnDESCRIPTION fnOUTPUT, fnIDX header_index, 1 is_header FROM tnHeaders
UNION ALL
SELECT fnDESCRIPTION, fnHEADER_IDX, 0 FROM tnData
) t
ORDER BY header_index, is_header DESC, fnOUTPUT;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/393643.html
標籤:mysql 玛丽亚数据库 sql-order-by 联合所有
