我从两个不同的数据库中遇到有关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。
答案 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