我正在从数据库中的两个不同表中提取值。我应该只得到一行输出,但我得到两行。其中一行是完美的,但另一行有一个空值,显然不应该为空。我的代码如下:
SELECT DISTINCT DEATH_RATE.COUNTRY_NAME,
DEATH_RATE.DATA_YEAR,
DEATH_RATE.DEATH_RATE_VALUE,
TIME_TO_EXPORT.EXPORT_VALUE
FROM DEATH_RATE, TIME_TO_EXPORT
WHERE TIME_TO_EXPORT.COUNTRY_NAME IN ('Belgium')
AND TIME_TO_EXPORT.COUNTRY_NAME = DEATH_RATE.COUNTRY_NAME
AND DEATH_RATE.DATA_YEAR = 2012
AND DEATH_RATE.DATA_YEAR = DEATH_RATE.DATA_YEAR ;
我得到的输出如下:
COUNTRY_NAME DATA_YEAR DEATH_RATE EXPORT_VALUE
1.Belgium 2012 423.5 9
2.Belgium 2012 423.5 null
第一行很好,只有这应该是输出。第二行和空值从何而来?
谢谢
查询的最后一个条件有点没用(当值不null
时,条件总是true
):
DEATH_RATE.DATA_YEAR = DEATH_RATE.DATA_YEAR
我想你打算:
TIME_TO_EXPORT.DATA_YEAR = DEATH_RATE.DATA_YEAR
(我假设字段具有相同的名称)因此,在您的选择中,您将获得与"比利时"相关的所有TIME_TO_EXPORT
记录,无论DATA_YEAR
的价值如何。
所以你的查询变成:
SELECT DISTINCT DEATH_RATE.COUNTRY_NAME,
DEATH_RATE.DATA_YEAR,
DEATH_RATE.DEATH_RATE_VALUE,
TIME_TO_EXPORT.EXPORT_VALUE
FROM DEATH_RATE, TIME_TO_EXPORT
WHERE TIME_TO_EXPORT.COUNTRY_NAME IN ('Belgium')
AND TIME_TO_EXPORT.COUNTRY_NAME = DEATH_RATE.COUNTRY_NAME
AND DEATH_RATE.DATA_YEAR = 2012
AND TIME_TO_EXPORT.DATA_YEAR = DEATH_RATE.DATA_YEAR ;
将最后一行替换为:
AND TIME_TO_EXPORT.DATA_YEAR = DEATH_RATE.DATA_YEAR;
<</div>
div class="one_answers">DEATH_RATE TIME_TO_EXPORT没有正确连接。 当然,最后一行没有任何意义。