使用PDO在两个数据库之间连接

时间:2016-01-11 17:05:13

标签: php mysql pdo left-join

我有两个数据库,我正在尝试比较两个表。我的代码似乎不起作用,不确定我做错了什么。

这是代码。

<?php
include 'connection.php';
/* 
 * This code compares between two tables
 */

//SQL call
$getData = $connection->prepare("SELECT `CustomerCity` FROM `auth` LEFT JOIN `tb_data.cobs.city` WHERE `CustomerCity` =  `tb_data.cobs.city` LIMIT 3");
$getData->execute();
$gotData = $getData->fetchAll(PDO::FETCH_ASSOC);
print_r($gotData);

在我的数据库中,我有两个表,on是cobs,另一个是tb_data。 tb_data有一个名为cobs的表,auth是一个名为d_data的数据库中的表。这两个表都有一个城市列。我需要获取auth中的每条记录,其中有一个匹配在cobs表中的城市。

4 个答案:

答案 0 :(得分:0)

其他人指出您的查询错误,但未提供正确答案。这是你可能正在寻找的东西:

SELECT `auth.CustomerCity` FROM `auth` 
LEFT JOIN `tb_data.cobs` ON `tb_data.cobs.city` = `auth.CustomerCity` 
LIMIT 3

答案 1 :(得分:0)

看起来查询使用显式连接语法和过时语法的混合,使用连接条件的WHERE子句进行连接。

若是,请尝试: -

SELECT CustomerCity 
FROM auth 
LEFT JOIN tb_data.cobs 
ON auth.CustomerCity = cobs.city 
LIMIT 3

答案 2 :(得分:0)

试试这个:

在auth.city = cobs.city limit 3上从auth join cobs中选择* .auth,* .cobs

答案 3 :(得分:-1)

查询不正确,您需要指定表authtb_data.cobs.city之间的链接。例如:

SELECT
    * 
FROM 
    FOOTABLE FOO
LEFT JOIN
    BARTABLE BAR ON BAR.FOO_ID FOO.ID = -- here goes the link between them
WHERE
    ...