我对SQL很陌生,并且在MySQL中创建视图时遇到问题,该视图利用来自具有不同列的多个表的数据。
我需要视图从5个表中提取数据,在这些不同的表中使用8列。
例如:table1有4列我需要数据,table2有1列,table3有1列,table4有1列。
我已经尝试过,做得不好,但我很想让别人指出正确的方向。这是我需要利用关节的东西吗?我不能使用UNION,因为所有表都必须具有相同数量的列,对吗?
答案 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;
这是一个非常通用且相当标准的JOIN
和SELECT
。我通常做的是创建我的SELECT
,并确保它返回我想要的。然后我将CREATE VIEW [NAME} AS
直接放在它前面,然后创建视图。现在,您只需调用此SELECT * FROM view1;
还有一个附注,当您JOIN
时,您需要确保要加入的列具有相同的数据。通常是JOIN
列上的ID
。例如,table1.ID
和table2
中table1
列ID
所在的列。但这可能是任何独特的数据。
有关详细信息,请参阅MySQL文档https://dev.mysql.com/doc/refman/5.0/en/create-view.html