我将不遗余力,但基本上我有两个不同的数据库,我从中检索信息。 1是Oracle(我们只获得了只读访问权限),另一个是Mysql(我们可以完全访问)。我的问题是oracle表中的列缺少我们想要从中提取数据,但是我们需要的列是在mysql表中。有没有办法可以编写一个join语句来将这个mysql列包含在oracle表中?我在网上看到人们使用'LinkedServers'的实例,但我不确定它在PHP中是如何工作的。数据库连接存储在php文件中,当我们想要使用该特定数据库时,将调用该函数。
TL;博士
用户可以使用mysql和oracle表的连接吗?如果是这样,当db信息在一个单独的php文件中时,如何在php中实现它?
我想sql查询看起来与此类似:
select
*
from
LocalTable,
[OtherServerName].[OtherDB].[dbo].[OtherTable]
但有一些连接逻辑
答案 0 :(得分:1)
您无法加入2个不同的数据库供应商。 查询由特定供应商查询分析器执行。
然而,你可以在PHP中加入自己,但需要将大量信息转储到php中。小数据集对大型数据集来说应该没问题......
您要做的是将数据从一个供应商复制到另一个供应商的临时表中,然后执行连接。
出于本示例的目的,我将使用PDO。 我将获取oracle数据并将其放入mysql中,以便我可以使用该数据的连接...
$oracle_table_b = "select * from mytable";
$oracle_data = $pdo->fetchAll();
$stmt = $pdo_mysql->prepare("insert into mytemptable (mycols)");
foreach ($oracle_data as $row) {
$stmt->execute($row);
}
//然后运行你的联接