MySQL从2个不同的表和列创建视图

问题描述:

我想创建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

显式编写您的选择性列,您的连接,并重新为两个表中的公共列名重新命名。


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

视图会以某种方式更快,可以重复使用。但是,您也可以使用您的选择查询。

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

使用运营商或者列出你希望每个柱:

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