我从数据库中的两个不同表中提取值。我应该只获得一行输出,但我得到两行。其中一个输出行是完美的,但另一行有一个空值,显然不应为空。我的代码如下:
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 ;
第一行很好,只应该是输出。第二行在哪里,空来自??
由于
答案 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未正确加入。当然,最后一行没有任何意义。