MySQL - 麻烦:使用来自多个表的数据创建视图

时间:2015-05-28 02:26:23

标签: mysql

我对SQL很陌生,并且在MySQL中创建视图时遇到问题,该视图利用来自具有不同列的多个表的数据。

我需要视图从5个表中提取数据,在这些不同的表中使用8列。

例如:table1有4列我需要数据,table2有1列,table3有1列,table4有1列。

我已经尝试过,做得不好,但我很想让别人指出正确的方向。这是我需要利用关节的东西吗?我不能使用UNION,因为所有表都必须具有相同数量的列,对吗?

1 个答案:

答案 0 :(得分:0)

您需要使用联接,如下所示:

CREATE VIEW view1 AS 
SELECT t1.col1, t1.col2, t2.col1, t2.col2 
FROM table1 t1 
INNER JOIN ON table2 t2 on t1.col1 = t2.col2;

这是一个非常通用且相当标准的JOINSELECT。我通常做的是创建我的SELECT,并确保它返回我想要的。然后我将CREATE VIEW [NAME} AS直接放在它前面,然后创建视图。现在,您只需调用此SELECT * FROM view1;

视图即可

还有一个附注,当您JOIN时,您需要确保要加入的列具有相同的数据。通常是JOIN列上的ID。例如,table1.IDtable2table1ID所在的列。但这可能是任何独特的数据。

有关详细信息,请参阅MySQL文档https://dev.mysql.com/doc/refman/5.0/en/create-view.html