Oracle Sql разработчик, как отобразить нулевой внешний ключ - PullRequest
1 голос
/ 27 марта 2012

Я занимаюсь проектом базы данных Oracle, который называется «Система бронирования театра».Я пытаюсь отобразить цену со скидкой через Customer_Concession и Member_Concession.Нулевые внешние ключи - это bookingId, cconcessionId и mconcessionId в таблице Ticket.Я хочу отобразить все билеты, даже если один из идентификаторов не существует.Как я могу написать SQL?Не могли бы вы помочь мне?Спасибо.

SELECT t.ticketId, pro.name "Production name", PRICE.LEVELID "Price level", 
Price.price "Price", (Price.price - ccons.discountPrice - mcons.discountPrice)
"Discounted Price", t.seatNo "Seat", t.rowNo "Row", t.block "Block",
per.performance_date "Performance date", per.start_time "Start time", 
per.end_time "End time", t.availability "Availability"

FROM Ticket t, Production pro, Performance per, Price, Price_level, 
Booking, Customer, Customer_Concession ccons, Member_concession mcons

WHERE t.performanceid = per.performanceid AND
  t.PRODUCTIONID = Price.PRODUCTIONID AND
  t.levelId = Price.levelId AND
  Price.PRODUCTIONID = pro.PRODUCTIONID AND
  Price.levelId = Price_level.levelId AND
  t.bookingId = Booking.bookingId AND
  Booking.customerId = Customer.customerId AND
  ccons.cconcessionId = t.cconcessionId AND
  mcons.mconcessionId = t.mconcessionId

ORDER BY t.ticketId

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

То, что вы ищете, называется LEFT OUTER JOIN.

для получения дополнительной информации посетите этот сайт: http://www.oreillynet.com/network/2002/04/23/fulljoin.html

2 голосов
/ 27 марта 2012

Попробуйте ...

WHERE t.performanceid = per.performanceid AND
      t.PRODUCTIONID = Price.PRODUCTIONID AND
        t.levelId = Price.levelId AND
        Price.PRODUCTIONID = pro.PRODUCTIONID AND
        Price.levelId = Price_level.levelId AND
        t.bookingId = Booking.bookingId(+) AND
        Booking.customerId = Customer.customerId(+) AND
        ccons.cconcessionId(+) = t.cconcessionId AND
        mcons.mconcessionId(+) = t.mconcessionId

(обратите внимание на старый синтаксис)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...