我有两个不同的数据库,我必须运行一个查询,我将在一个查询中连接两个数据库中的表。我的查询是这样的:
SELECT mm.* FROM tbl1 mm INNER JOIN tbl2 t ON mm.module_id=t.module_id WHERE mm.module_name NOT IN(SELECT module_name FROM tbl3)"
此处 tbl1 和 tbl2 位于一个数据库中, tbl3 位于第二个数据库中。是否可以在表名称之前没有HARD CODING数据库名称的情况下运行此查询?我创建了常用文件 global_config1.php 和 global_config2.php ,它们具有数据库常量和其他php数据库连接常量,并使用require_once(global_config1.php)
和require_once(global_config2.php)
但是查询失败了。
答案 0 :(得分:0)
您可以使用两个不同的数据库来获取记录,为此您有两个数据库对象。
试试这个,
<?php
$con = mysqli_connect("localhost","root","","test");
$con1 = mysqli_connect("localhost","root","","test1");
$query = "SELECT mm.* FROM test.tbl1 mm INNER JOIN test.tbl2 t ON mm.module_id=t.module_id WHERE mm.module_name NOT IN(SELECT module_name FROM test1.tbl3)"
?>
答案 1 :(得分:0)
试试这个:
SELECT Database1.TableA.ColumnA1, Database1.TableA.ColumnA2,
Database2.TableB.ColumnB1, Database2.TableB.ColumnB2
FROM Database1.TableA
INNER JOIN
Database2.TableB ON
Database1.TableA.ColumnA3 = Database2.TableB.ColumnB3
现在,您将在一行中看到完整的结果。如果两个数据库中的列名相同,您将在结果中看到列名相同,并且由于2个或更多列名相同,因此无法在PHP中获取值。为此,我们编写另一个查询
答案 2 :(得分:0)
对于CI $ query = $ this - &gt; db-&gt; query(&#34; SELECT * FROM Table-1 WHERE id =(SELECT qid FROM Table-2 where post_status =&#39; active&#39; AND post_type =&# 39;快速&#39;)&#34;); return $ query-&gt; result_array();
答案 3 :(得分:0)
我的目的是通过分离查询和数据库连接字符串变量来解决的。因此,要在一个数据库上运行查询,我在mysql_query()中输入了单独的连接字符串变量。这有助于从两个数据库中获取数据。