在mySQL中组合两个查询
我正在尝试合并两个查询的结果。我不是很精通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
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关于外部联接的文章以了解它们的工作原理: