MySQL 3 таблицы перекрывающихся запросов

0

другой 3-х табличный запрос. У меня есть резервирование таблиц, customer_service и выставление счетов.

Я пытаюсь выбрать тип номера из резервации и некоторые другие поля из биллинга "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";
  • 0
    Я изменил свой Союз на «Союз ВСЕ», и это, кажется, делает то, что я хочу. Я понимаю, что «объединение» по умолчанию - это отдельное объединение, но какие поля оно различает, просто должна быть различна вся строка?
Теги:
duplicates

1 ответ

1
Лучший ответ

Используйте UNION ALL вместо простого UNION

См. Синтаксис UNION

Ещё вопросы

Сообщество Overcoder
Наверх
Меню