2015-08-13 72 views
1

我在我的数据库中有两个表,我想创建一个包含所有信息的视图。 其中一个表格包含每个订单的详细信息,另一个表格包含这些订单的一般信息。两个表之间的SQL视图

这里是表的细节:

OrderRecords_table

OrderID|CustomerCode|Customer|Address|PickupLocation|TotalPrice|CreateTime 
C00001 |AB001  |ABC Co. |CA  | Store  |5   |2015-01-01 
C00002 |BC002  |BC Co. |CA  | store  |5.5  |2015-01-01 

OrderDetails_table

OrderID|Company|ItemName|Amount|unitPrice|CreateTime   
C00001 |ABC Co.|apple |1  |2  |2015-01-01 01:01:01 
C00001 |ABC Co.|Orange |3  |3  |2015-01-01 01:01:01 
C00002 |BC Co. |candy |5  |1  |2015-01-01 03:01:01 
C00002 |BC Co. |pan  |1  |2  |2015-01-01 03:01:01 
C00002 |BC Co. |ruler |2  |2.5  |2015-01-01 03:01:01 

像这样的事情,所以就OrderRecords,单编号是唯一的,订单明细有每个项目的记录。

现在我正在创建一个方法,它需要来自两个表的详细信息,如果我每次尝试在表中选择项目,并且我想创建一个包含两个表的详细信息的视图。

我想这是东西如下:

视图V

OrderID|Company|CustomerCode|Address|ItemName|Amount|UnitPrice|CreateTime 
C00001 |ABC Co.|AB001  |CA  |apple |1  |2  |2015-01-01 
C00001 |ABC Co.|AB001  |CA  |orange |3  |3  |2015-01-01 
C00002 |BC Co. |BC002  |CA  |candy |5  |1  |2015-01-01 
C00002 |BC Co. |BC002  |CA  |pan  |1  |2  |2015-01-01 
C00002 |BC Co. |BC002  |CA  |ruler |2  |2.5  |2015-01-01 

什么的最好方式是创造这样的说法?由于

+0

退房'MySQL的内部join'和你的情况,你会用'OrderID'加入两个表。 –

+0

@AbhikChakraborty感谢编辑它,我会看看内部加入 –

回答

0

你可以使用一个连接:

CREATE VIEW v AS 
SELECT orec.OrderID, 
     od.Company, 
     orec.CustomerCode, 
     orec.Address, 
     od.ItemName, 
     od.Amount, 
     od.unitPrice, 
     od.CreateTime 
FROM OrderRecords orec 
JOIN OrderDetails od ON orec.OrderId = od.OrderId 
+0

感谢您的答复,但最后一部分 ''从OrderRecords或 JOIN OrderDetails OD ON or.OrderId = od.OrderId''什么这或做,因为它显示为mysql上的错误 –

+0

我已经陷入了'OrderRecords'的缩写'或',我甚至没有意识到我正在使用保留字。修正了,看我编辑的答案。 – Mureinik

+0

我很困惑这里 '从OrderRecords orec'我thuoght orec是一样的OrderRecords在你的答案? –