Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从多个数据库创建具有相同列名的多个表的视图?_Mysql_Join_View - Fatal编程技术网

Mysql 从多个数据库创建具有相同列名的多个表的视图?

Mysql 从多个数据库创建具有相同列名的多个表的视图?,mysql,join,view,Mysql,Join,View,我目前有两个名为t1和t2的表,结构如下: idvarchar(7)非空默认值“0”, codevarchar(30)默认为空 每个表中大约有50个数据,我的目标是创建一个视图表,该视图表结合了来自表中的两个数据 到目前为止,这些是我尝试过的查询,它们显示了我的目标的一些结果: Create view test_view as SELECT t1.id, t1.code, t2.id, t2.code, FROM test1 t1 CROSS JOIN test2 t2 返回

我目前有两个名为t1和t2的表,结构如下:

id
varchar(7)非空默认值“0”,
code
varchar(30)默认为空

每个表中大约有50个数据,我的目标是创建一个视图表,该视图表结合了来自表中的两个数据

到目前为止,这些是我尝试过的查询,它们显示了我的目标的一些结果:

Create view test_view as
SELECT
  t1.id,
  t1.code,
  t2.id,
  t2.code,

FROM test1 t1
CROSS JOIN test2 t2
返回结果,但由于某种原因,第二个表中的值被复制了50倍

我尝试过的另一个查询(我本来打算把它们都放在同一列中,而不是创建新列来区分t1和t2)也是这样做的

SELECT a.id, b.id
FROM test1.t1 as a 
LEFT JOIN test2.t2 as b ON a.id <> b.id;
选择a.id,b.id
从test1.t1开始,作为
将test2.t2作为b在a.id b.id上左连接;
内部联接、外部联接、交叉联接显示重复数据的相同结果

我尝试使用UNION,但视图表不允许我在使用UNION时编辑列


我试着连续几天在互联网上搜索,但我似乎不明白这样做的逻辑。我希望能得到一些帮助。提前感谢。

联接的目的是生成一个虚拟表,其中包含符合ON条件的联接表中的所有行对组合。您没有ON条件,所以您得到了所有可能的行对:一个无用的数据爆炸

如果要将两个表连接在一起,使它们显示为一个表,则应使用UNION或UNION ALL(如果希望保留重复项)

但是,尝试将行插入定义为两个表的并集的视图是没有意义的:插入的行必须进入其中一个物理表。当您尝试将其插入视图时,您不会向表服务器提供有关要使用哪个物理表的任何线索


即使在插入或更新test1.t1或test2.t2时,您也可以使用视图检索数据。

这两个表之间有关系吗?数据是否以某种方式链接在一起?交叉连接意味着“获取表A的所有行,并将它们与表B的所有行链接”,因此,如果两者都有50行,则会得到50*50的结果。只有一种方法,你才能得到50行,那就是以某种方式将它们连接起来,一行接一行。基本上,它们都用于不同的前端,但使用相同的后端(报表生成器)。我的目标是创建一个视图,这样任何更新、插入或更改语句都可以通过视图表本身完成,而不是在数据库之间切换。为此,您需要使用UNION ALL。“视图表不允许我编辑列”是什么意思?如果我使用join,在phpmyadmin上,我可以编辑视图行内的数据,并且数据在表上更新。但是,当使用UNION时,各行失去了其基础表标识,因此“编辑”选项不再出现在视图中。很抱歉,我忘记了,我并不是说它是用于插入目的的,基本上我想要was的视图,以便它将所有表中的所有数据显示到管理后端的reportcontroller中