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


Using Two Tables with the WHERE clause from two databases

我有两个来自两个不同数据库的表表A(数据库-1)表B(数据库-2)A有三个属性(student_id、terminate、account_status),而表B则有两个属性(tudent_id和assesor_status。)。我如何同时连接到两个数据库,并从两个表中提取数据,并将其计算为所有student_id的总和,这些student_id的account_status值为"ACTIVE",semeter值为"6",assesor_status的值为"PENDING"

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

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

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

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' 

合成战术错误

WHERE子句中缺少表名。semesteraccountassesor_status列应该在某个表中。添加表名,就像您为student_id列所做的那样。

逻辑错误

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