作者maplenote (貓奴一隻)
看板Database
標題Re: [SQL ] 同時查詢兩張資料表的問題
時間Wed Sep 21 13:09:51 2011
※ 引述《phreat (雷)》之銘言:
: 因為sql語法實在太弱,又上線請各位賜教了
: table_a
: a b time id
: 1 2 110901 1 1
: 3 4 110903 1
: table_b
: c d time id
: 5 6 110902 1
: 想利用mysql 語法 輸出成這樣
: 0的地方也可以是null
: a b c d time
: 1 2 0 0 110901
: 0 0 5 6 110902
: 3 4 0 0 110903
: 試過這個語法
: SELECT a,b,time FROM `table_a` where `id`='1' union all SELECT c,d,time FROM
: `table_b` WHERE `id`='1' ORDER BY `time` ASC
我想到的是這個方式
(SELECT a,b,0 AS c,0 AS d,time FROM table_a WHERE id='1') union
(SELECT 0 AS a,0 AS b,c,d,time FROM table_b WHERE id='1') ORDER BY time ASC
先把缺的欄位先增加上去 再union
就是 把0 或者說'0'視為一個欄位 名稱是xxx 加在select出來的資料上
: 但會變成
: a b time
: 1 2 110901
: 5 6 110902
: 3 4 110903
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.240.99
※ 編輯: maplenote 來自: 203.67.240.99 (09/21 13:11)
推 cutecpu:推 09/21 14:00
推 phreat:呵 跟我現在的做法一樣,不過還是非常感謝你唷^^ 另外我是用 09/21 22:11
推 phreat:union all 因為我的資料相同的要保留下來 09/21 22:16