使用两个表与两个数据库中的WHERE子句

时间:2014-04-21 07:00:58

标签: php mysql

我有来自两个不同数据库的两个表。 TableA(数据库-1) TableB(数据库-2) TableA 有三个属性(student_id,semester,account_status), TableB 有两个属性(student_id,assesor_status)。我如何同时连接到两个数据库并从两个表中提取数据,并计算给我所有student_id 的总和,其中 account_status值&# 39; ACTIVE'和semeter值' 6'和assesor_status有价值'待定'

这就是我所做的,但是我无法同时连接到两个数据库。

SELECT (COUNT)TableA.student_id 
FROM TableA, TableB 
WHERE semester = '6' 
    AND account_status = 'ACTIVE' 
    AND assesor_status = 'PENDING';

2 个答案:

答案 0 :(得分:1)

如果您使用一个连接来访问两个数据库,则可以

SELECT COUNT(a.student_id) 
FROM DBA.TableA a
INNER JOIN DBB.TableB b ON a.student_id = b.student_id 
WHERE     a.account_status = 'AVTIVE' 
      AND a.semesteer = '6' 
      AND b.assesor_status = 'PENDING'

否则你可以使用两个查询

SELECT b.student_id 
FROM TableA b 
WHERE b.assesor_status = 'PENDING'

然后将结果与IN

一起使用
SELECT COUNT(a.student_id) 
FROM TableA a
WHERE a.student_id IN(?) -- result from previous query
      AND a.account_status = 'AVTIVE' 
      AND a.semesteer = '6' 

答案 1 :(得分:-1)

语法错误

您缺少WHERE子句中的表名。 semesteraccountassesor_status列应位于某个表格中。像为student_id列一样添加表名。

逻辑错误

另外,我没有看到您的查询中定义的TABLEATABLEB之间的关系。您应该添加它以获得预期结果