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';
谢谢。
答
显式编写您的选择性列,您的连接,并重新为两个表中的公共列名重新命名。
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';
答
视图会以某种方式更快,可以重复使用。但是,您也可以使用您的选择查询。
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 ...
如果您计划在其他位置重新使用基础查询,或者在将数据呈现给用户之前使用它来过滤数据,该视图才有用。 – 2013-03-27 21:45:10
旁注..我使用mysql工作台,并试图使用上述查询来创建一个视图,但东西不正确 – SwampYeti 2013-03-27 21:45:48
马克是的,我基本上是每次输出该查询数据,并“固定”在Excel中 – SwampYeti 2013-03-27 21:47:01