我正在尝试在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仍显示为空白

最佳答案

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


UNION将仅选择两个表之间共有的列。

您正在寻找的是联接。

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

10-04 11:20