当数据库中存在值时,在输出中显示SQL-null值

时间:2016-05-30 10:58:47

标签: sql database duplicates

我从数据库中的两个不同表中提取值。我应该只获得一行输出,但我得到两行。其中一个输出行是完美的,但另一行有一个空值,显然不应为空。我的代码如下:

from bs4 import BeautifulSoup

html = """<a id="phone-lead" class="callseller-description-link" 
     rel="050 395 7996" href="#">Show Phone Number</a>"""
soup = BeautifulSoup(html, "html.parser")
phone_result = [','.join(map(str.strip, a.get('rel'))) for a in soup.find_all('a', {'id':'phone-lead', 'rel': True})]
print phone_result
#  ['050,395,7996']

我得到的输出如下:

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 ;

第一行很好,只应该是输出。第二行在哪里,空来自??

由于

3 个答案:

答案 0 :(得分:0)

查询的最后一个条件有点无用(当值不是true时,条件总是null):

DEATH_RATE.DATA_YEAR = DEATH_RATE.DATA_YEAR

我认为你打算这样做:

TIME_TO_EXPORT.DATA_YEAR = DEATH_RATE.DATA_YEAR

(我假设这些字段具有相同的名称) 在您的选择中,您获得了与比利时&#39;相关的所有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 ;

答案 1 :(得分:0)

用这个替换你的最后一行:

AND TIME_TO_EXPORT.DATA_YEAR = DEATH_RATE.DATA_YEAR;

答案 2 :(得分:0)

DEATH_RATE是TIME_TO_EXPORT未正确加入。当然,最后一行没有任何意义。