2009-12-04 3 views
0

еще 3 запроса таблицы здесь. У меня есть резервирование стола, клиент_сервис и выставление счетов.MySQL 3 стол перекрывающий запрос

Я пытаюсь выбрать тип номера из резервации и некоторые другие поля из биллинга «ВКЛ» 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

Я изменил свой союз "Союз ALL", и что, кажется, делать то, что я хочу. Я понимаю, что «союз» по умолчанию представляет собой отдельный союз, но какие поля он делает различимым, просто вся строка должна быть различной? – Stuart

ответ

1

Сделать использование UNION ALL вместо UNION только

См UNION Syntax

+0

большое спасибо – Stuart

Смежные вопросы