作者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)
1F:推 cutecpu:推 09/21 14:00
2F:推 phreat:呵 跟我现在的做法一样,不过还是非常感谢你唷^^ 另外我是用 09/21 22:11
3F:推 phreat:union all 因为我的资料相同的要保留下来 09/21 22:16