Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何在基于子类型的查询中选择表?_Database_Mysql - Fatal编程技术网

Database 如何在基于子类型的查询中选择表?

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 ==

我有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 ==
我的问题是,如何创建一个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'