Как выбрать таблицу в запросе на основе подтипа? - PullRequest
1 голос
/ 15 сентября 2010

У меня есть 4 таблицы: Транзакции, Заказы - SuperType, а затем SubType Site_Orders и Product_Orders

[Transactions]
id PK
Orders_id [FK Orders.orders_id]

[Orders]
Orders_id PK
Orders_type

[Site_Orders]
Orders_id [FK Orders.orders_id]
== other data ==

[Product_Orders]
Orders_id [FK Orders.orders_id]
== other data ==

Мой вопрос заключается в том, как мне создать оператор соединения, который будет обрабатывать транзакции, связывать и получать праваинформация из таблицы подтипов?Или мне придется использовать PHP для проверки подтипа и сделать там логику?

Спасибо

1 Ответ

2 голосов
/ 15 сентября 2010
SELECT ...
FROM Orders o
JOIN Transactions t ON t.Orders_id = o.Orders_id
LEFT OUTER JOIN Site_Orders so 
  ON so.Orders_id = o.Orders_id AND o.Orders_type = 'S' 
LEFT OUTER JOIN Product_Orders po 
  ON po.Orders_id = o.Orders_id AND o.Orders_type = 'P' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...