2014-10-17 44 views
-2

我有4个表是这样的:可能选择查询

  • 为了
  • CUSTOMER_TYPE
  • TYPE1
  • TYPE2

每个订单都有一个客户可以是type1type2。 在订单表中,我有customerId,在customer_type中我有orderId以及该订单的客户类型。

我的问题是我怎样才能与他的客户订单只有一个选择?

+0

请提供表结构与细节 – Affan 2014-10-17 09:20:20

+0

我认为这些都是唯一的你需要的基本细节。订单表具有关于订单和客户ID的详细信息,Customer_Type表具有该订单的订单ID和客户类型,而表type1和type2仅具有关于客户的type1或type2的详细信息。 – 2014-10-17 09:23:51

+0

我的问题是我怎样才能只有一个选择与他的客户订单? nd是什么意思选择??????我没有得到您的问题 – Affan 2014-10-17 09:25:53

回答

0

可以使用union all操作人员进行type1type2充当一个表,并从那里它只是一系列join S:

SELECT order_details, customer_details 
FROM orders o 
JOIN customer_type ct ON o.customerId = ct.id 
JOIN (SELECT *, 'type1' AS type 
     FROM type1 
     UNION ALL 
     SELECT *, 'type2' AS type 
     FROM type2) t ON t.type = ct.type 
+0

我的表不是这样的。所以我们有订单{Id,CustomerId,OrderDetails},customer_type {Id,CustomerType,OrderId},type1 {Id,CustomerDetails},type2 {Id,CustomerDetails},我想订单和他的客户 – 2014-10-17 09:41:50

+0

只需编辑你的问题,的表格以及它们之间的关系,正如@Affan最初提出的那样,然后我们也许能够帮助你。 – Mureinik 2014-10-17 09:47:22

+0

不再主宰,你给了我一个与工会所有人的理念,我设法将它应用到我的桌子上,所以我会给你一个正确的答案。感谢和抱歉我提出问题的方式。 – 2014-10-17 09:57:15