内部 JOIN 查询在一个数据库中返回某人,但不是在“相同”的数据库中?

问题描述 投票:0回答:0

我正在使用两个相当大的数据库,它们应该是相同的(尽管我不认为它们是相同的)。

我在两个数据库中运行以下查询:

SELECT DISTINCT(id.id) FROM id 
INNER JOIN sval isin 
ON id.id = isin.id 
INNER JOIN sval opol 
ON id.id=opol.id 
INNER JOIN sval currency 
ON id.id=currency.id 
WHERE id.clid=85 
AND isin.fid=903 AND isin.val='FI0009000681'
AND opol.fid=994 AND opol.val='XHEL' 
AND currency.fid=971 AND currency.val='EUR';

在一个数据库上,我返回了一个

id
值 32。但在另一个数据库上,没有任何返回。我想弄清楚为什么第二个数据库没有返回任何内容。

第二个数据库需要填充哪些表/字段才能返回某些内容?

当我做

SELECT * FROM sval WHERE fid=903
时,我得到了一堆条目,
fid=904
也是如此。

调试:

我一次运行一个 JOIN,所以到目前为止我得到一个值:

SELECT DISTINCT(id.id) FROM id INNER JOIN sval isin ON id.id = isin.id INNER JOIN sval opol ON id.id=opol.id INNER JOIN sval currency ON id.id=currency.id WHERE id.clid=85 AND isin.fid=903 AND isin.val='FI0009000681' AND opol.fid=994 AND opol.val='XHEL'

返回一个id。

但是如果我在上面添加

AND currency.fid=971;
,它不会返回值。

sql inner-join
© www.soinside.com 2019 - 2024. All rights reserved.