2013-03-27 39 views
0

我想創建2個表的視圖。MySQL從2個不同的表和列創建視圖

目前,我使用下面的行,這工作得很好,但我得到的信息太多了,我需要更多的選擇性,選擇列:

第一臺

wp_cart66_orders and i need to pull 
bill_first_name_, bill_last_name 

status=, new or shipped etc... 

第二表

wp_cart_66_order_items 
description, quantity 

我不確定是否需要創建視圖或只是使用此查詢。

另外,如果情況確實如此,我可能需要指出正確的方向。

select wp_cart66_orders.*, wp_cart66_order_items.* 
from wp_cart66_orders, wp_cart66_order_items 
where wp_cart66_orders.id=wp_cart66_order_items.order_id 
    and wp_cart66_orders.status = 'new'; 

謝謝。

+0

如果您計劃在其他位置重新使用基礎查詢,或者在將數據呈現給用戶之前使用它來過濾數據,該視圖纔有用。 – 2013-03-27 21:45:10

+0

旁註..我使用mysql工作臺,並試圖使用上述查詢來創建一個視圖,但東西不正確 – SwampYeti 2013-03-27 21:45:48

+0

馬克是的,我基本上是每次輸出該查詢數據,並「固定」在Excel中 – SwampYeti 2013-03-27 21:47:01

回答

2

顯式編寫您的選擇性列,您的連接,並重新爲兩個表中的公共列名重新命名。


create view OrderItemsVW 
as 
select wp_cart66_orders.bill_first_name as Bill_First_Name, 
     wp_cart66_orders.bill_last_name as Bill_Last_Name, 
     wp_cart66_orders.Description as OrdersDescription,   
     wp_cart66_order_items.Description as OrderItemsDescription 
from wp_cart66_orders 
inner join wp_cart66_order_items 
    on wp_cart66_orders.id=wp_cart66_order_items.order_id 
where wp_cart66_orders.status = 'new'; 
+0

哇,這是完美的。我現在看到你是如何做到這一點的。我也不知道我可以在不同的線路上進行這些操作。使它更容易閱讀。謝謝 – SwampYeti 2013-03-27 23:52:48

+0

這是典型的名字與WV的意見?我只是想確定是否需要再次這樣做,我的命名約定正確 – SwampYeti 2013-03-27 23:54:44

+1

對於視圖命名約定,通常我遵循CamelCase規則,將底層實體名稱+ VW。大衆並不一定需要。 – ljh 2013-03-28 06:33:17

0

視圖會以某種方式更快,可以重複使用。但是,您也可以使用您的選擇查詢。

select wp_cart66_orders.*, wp_cart66_order_items.* from wp_cart66_orders, wp_cart66_order_items where wp_cart66_orders.id=wp_cart66_order_items.order_id and wp_cart66_orders.status = 'new'; 

這一點,如果wp_cart66_orders和wp_cart66_order_items具有相同的列纔有效。

+0

它'我會很好的工作。它不是聯合查詢,它只是一個懶惰的語法連接。 – 2013-03-27 21:50:24

0

使用運營商或者列出你希望每個柱:

AS mycolname選擇table1.col1,table2.col4 AS mycolname2 ...

選擇table1.col1, table2.col4 ...

+0

選擇wp_cart66_orders.bill_first_name AS First_Name wp_cart66_order_items.description AS訂購 – SwampYeti 2013-03-27 21:55:44

+0

那樣?當你說mycolname時,你的意思是我希望它顯示在視圖或查詢窗口中? – SwampYeti 2013-03-27 21:56:23

+0

是的,確切地說。但你也可以保留原來的名字 – 2013-03-27 21:59:45