mysql - 如何最小化sql查询
问题描述
我booking
在 MySQL 数据库中有一个表,我需要在其中获取 3 个数据。
1) 总预订
2) 待定预订 (where is_confirm = 1
)
3) 完成预订 (where is_confirm = 0
)
现在,我正在编写 3 个单独的查询来获取它,但是如何使用 1 个查询来获取它?
当前查询:
$booking = new Admin;
$booking->rowQuery("SELECT count(bid) AS totalBooking FROM booking");
$bookingData = $booking->result->fetch_assoc();
$totalBooking = $bookingData['totalBooking'];
$booking->rowQuery("SELECT bid FROM booking WHERE is_confirm = 1 ");
$completeBooking = $booking->rows;
$booking->rowQuery("SELECT bid FROM booking WHERE is_confirm = 0 ");
$pendingBooking = $booking->rows;
解决方案
SELECT count(bid) AS totalBooking FROM booking
UNION
SELECT bid FROM booking
WHERE is_confirm=1
UNION
SELECT bid FROM booking
WHERE is_confirm=0