这里还有另外 3 个表查询。我有餐 table 预订、客户服务和账单。
我正在尝试从预订中选择房间类型,并从计费“ON”中选择一些其他字段 r.ID = b.rID 以及 customer_services 中的相同内容(如下所示)。
联合之前的第一部分工作正常,但在添加联合时,我得到了一个奇怪的副作用,即任何具有重复 r.Roomtype、b.Quantity、b.UnitPrice 和 b.Total 的结果都会被丢弃。
我如何避免这种情况,因为它们有不同的 b.reservationID 并且我想要重复项?
SELECT r.RoomType, b.Quantity, b.UnitPrice, b.Total FROM Billing b, Reservation r
WHERE b.ReservationID = r.ReservationID
AND b.UserName = "Stuart"
AND b.Paid = "0"
UNION
SELECT cs.ServiceName, b.Quantity, b.UnitPrice, b.Total FROM Customer_Service cs, Billing b
WHERE b.CustomerServiceID = cs.CustomerServiceID
AND b.UserName = "Stuart"
AND b.Paid = "0";
最佳答案
使用 UNION ALL 而不是仅使用 UNION
关于MySQL 3 表重叠查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845334/