具有不同列数的两个选择的联合

时间:2011-06-10 19:03:12

标签: mysql sql

我正在尝试在MySQL中为我的结果集添加一列输出。我可以通过执行两个单独的查询轻松获得这些结果,但我希望它们位于相同的结果集中,以便将它们一起导出。

无论如何,这就是我在做的事情:

select buildid, cast(status as char), eventtime from buildstatuses 
where statustype = 8)
union all (select schedulerid, "", "" from builds 
where builds.buildid in (select buildid from buildstatuses where statustype = 8));

我只将初始选择中列出的列作为输出:

构建状态事件时间

我没有得到我想要的其他专栏:schedulerid

任何想法?

由于

编辑:更新

select buildstatuses.buildid, cast(status as char), eventtime, "" as schedulerid
from buildstatuses
inner join builds
on buildstatuses.buildid = builds.buildid
where buildstatuses.statustype = 8;  

这就是我现在所处的位置,即使使用别名,要添加的列ID仍然显示为空白

1 个答案:

答案 0 :(得分:2)

select buildid, cast(status as char), eventtime, schedulerid from buildstatuses 
inner join builds on buildstatuses.buildid = builds.buildid
where statustype = 8

UNION只会选择两个表之间通用的列。

您正在寻找的是一个加入。

编辑:最初我误解了这个问题,并建议更改union。我更新了答案以使用join,它应该提供您想要的内容。