gpt4 book ai didi

mysql - 在H2表和ResultSet之间进行JOIN(从MySQL表中选择)

转载 作者:行者123 更新时间:2023-11-29 09:33:47 26 4
gpt4 key购买 nike

我必须将数据库、MySQL 数据库和 H2 数据库嵌入到我的 Java 应用程序中。

我想在 H2 数据库上CREATE TABLE连接 H2 表和结果集,即来自 MySQL 数据库的SELECT

我想在 H2 数据库上执行此查询。

CREATE TABLE TableName AS
SELECT l.*, m.Act FROM temp AS l JOIN
(SELECT p.DES_PR AS Act, c.DES_COM AS com FROM
table_com AS c JOIN table_pr AS p
ON c.COD_PR = p.COD_PR) AS m
ON l.sel = m.com
ORDER BY Cod;

除了temp之外的所有表都在MySQL数据库上。temp 表位于 H2 数据库上。

如何在 H2 数据库上创建 TableName

最佳答案

您需要为要在 H2 中使用的每个 MySQL 表创建一个LINKED TABLE

CREATE LINKED TABLE tableName('', 'jdbc:mysql://.......', 'userName', 'password', 'tableNameInMySQL');

请参阅文档中的完整语法: https://h2database.com/html/commands.html#create_linked_table

然后,您将能够在 CREATE TABLEAS 子句以及所有查询中使用 tableName 作为 H2 中的表其他您需要它们的地方。

最后,当所有这些链接表不再使用时,您可以删除它们。

为了获得更好的性能,您还可以尝试使用具有 MySQL 表之间连接的查询来创建单个链接表,如文档中所述,查询必须括在括号中。类似的东西

CREATE LINKED TABLE m('', 'jdbc:mysql://.......', 'userName', 'password',
'(SELECT p.DES_PR AS Act, c.DES_COM AS com FROM
table_com AS c JOIN table_pr AS p
ON c.COD_PR = p.COD_PR)');

并在查询中使用它

CREATE TABLE TableName AS
SELECT l.*, m.Act FROM temp AS l JOIN
m
ON l.sel = m.com
ORDER BY Cod;

关于mysql - 在H2表和ResultSet之间进行JOIN(从MySQL表中选择),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58131616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com