我正在使用两个相当大的数据库,它们应该是相同的(尽管我不认为它们是相同的)。
我在两个数据库中运行以下查询:
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;
,它不会返回值。