Database 如何在基于子类型的查询中选择表?
我有4个表,事务,订单-超类型,然后是站点订单和产品订单子类型Database 如何在基于子类型的查询中选择表?,database,mysql,Database,Mysql,我有4个表,事务,订单-超类型,然后是站点订单和产品订单子类型 [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 ==
[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 ==
我的问题是,如何创建一个join语句,它将从子类型表中提取事务、关联和获取正确的信息?或者我必须使用PHP检查子类型并在那里完成逻辑
谢谢
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'