在mySQL中组合两个查询

在mySQL中组合两个查询,mysql,join,union,Mysql,Join,Union,我正在尝试合并两个查询的结果。我不是很精通mysql,所以我来这里寻求帮助 第一个查询如下: select count(roomtypeid) as bookedrooms, day from event_guest_hotel where hotelid = 1 and roomtypeid = 1 group by day; 这将返回: 第二个问题: SELECT ehr.reservationid, ehr.day, h.name AS hotelname, ehr.tota

我正在尝试合并两个查询的结果。我不是很精通mysql,所以我来这里寻求帮助

第一个查询如下:

select count(roomtypeid) as bookedrooms, day 
from event_guest_hotel 
where hotelid = 1 and roomtypeid = 1 
 group by day;
这将返回:

第二个问题:

SELECT ehr.reservationid, ehr.day, h.name AS hotelname, 
ehr.totalrooms as requested_rooms, r.name AS roomname
            FROM event_hotel_reservation ehr 
            INNER JOIN hotel_room_type r 
            ON ehr.roomtypeid = r.roomtypeid 
            INNER JOIN hotel h
            ON ehr.hotelid = h.hotelid  
            WHERE totalRooms != 0 
            AND reservationID = '1'
这将返回:

我可以将第一个查询与第二个查询合并,以便在“roomname”旁边的另一个resultcolumn中获得第一个查询的结果吗?这样我就知道有多少房间已经预订,有多少房间最初是通过一次查询请求的。

试试:

SELECT ehr.reservationid, ehr.day, h.name AS hotelname, 
    ehr.totalrooms as requested_rooms, r.name AS roomname, 
    egh.bookedrooms
FROM event_hotel_reservation ehr 
INNER JOIN hotel_room_type r ON ehr.roomtypeid = r.roomtypeid 
INNER JOIN hotel h ON ehr.hotelid = h.hotelid    
left outer join (
    select hotelid, count(roomtypeid) as bookedrooms, day 
    from event_guest_hotel 
    where roomtypeid = 1 
    group by hotelid, day
) egh on h.hotelid = egh.hotelid and ehr.day = egh.day
WHERE totalRooms != 0 
    AND reservationID = '1'

你是说另一列还是另一张桌子?谢谢。乍一看,这确实是我要找的。现在我将用这个查询来尝试,因为我所做的对我来说有点模糊;D复杂应用程序:(嗯。有没有办法在其他日子将BookedRoom显示为0?它只显示第25个atm。谢谢您希望在(选择…)上执行左外部联接,而不是内部联接。请参阅wikipedia关于外部联接的文章以了解它们的工作原理: