我有两个来自两个不同数据库的表表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子句中缺少表名。semester
、account
和assesor_status
列应该在某个表中。添加表名,就像您为student_id
列所做的那样。
逻辑错误
此外,我看不到您的查询中定义的TABLEA
和TABLEB
之间的关系。您应该添加它以获得预期结果