比较来自不同数据库的两个值会导致失败

时间:2015-12-11 14:08:59

标签: sql sql-server join

我从两个不同的数据库中遇到有关SQL查询的问题。我正在查看d1=[some database]d2=[some other database]中的两个表格。

当我使用以下查询时,一切正常:

SELECT
t1.ZVNUMMER,
t1.BUCHUNGSTEXT,
t1.VERWENDUNGSZWECK7,
t2.No_,
t2.Address
FROM d1.sometable AS t1,
d2.someothertable AS t2

结果是两个表之间的CROSS JOIN。显然,我需要一些WHERE子句形式的限制。

这应该考虑到.VERWENDUNGSZWECK7和t2.Address之间的关系。

所以当我将查询修改为:

SELECT
t1.ZVNUMMER,
t1.BUCHUNGSTEXT,
t1.VERWENDUNGSZWECK7,
t2.No_,
t2.Address
FROM d1.sometable AS t1,
d2.someothertable AS t2
WHERE t1.VERWENDUNSZWECK7 = t2.Address

然后整个查询失败。

然而,当我比较t1.VERWENDUNGSZWECK7 = 'somestring' AND t2.Address = 'somestring'时,一切正常。由于我无法使用硬编码比较,我需要修复上述声明。

我觉得它失败了,因为我比较了来自两个不同数据库的两个字符串,但我不确定如何修复它。

无论如何,任何帮助都将受到高度赞赏。

两个数据库都使用MS SQL。

1 个答案:

答案 0 :(得分:0)

尝试使用JOIN子句更改查询,如下所示:

SELECT
    t1.ZVNUMMER,
    t1.BUCHUNGSTEXT,
    t1.VERWENDUNGSZWECK7,
    t2.No_,
    t2.Address
FROM d1.sometable AS t1
JOIN d2.someothertable AS t2
ON t1.VERWENDUNSZWECK7 = t2.Address