Python Sqlite:如何基于列选择不存在的记录(行)?
希望大家都过得好 数据库:Python Sqlite:如何基于列选择不存在的记录(行)?,python,sqlite,Python,Sqlite,希望大家都过得好 数据库: Value Date --------------------------------- 3000 2019-12-15 6000 2019-12-17 我希望回报的是: “数据:2019年12月15日3000” “2019-12-16无数据”(不存在基于日期的列) “数据:2019年12月17日6000” 我不知道如何根据列筛选不存在的记录(行) 可能的样板代码: db = sqlite3
Value Date
---------------------------------
3000 2019-12-15
6000 2019-12-17
我希望回报的是:
“数据:2019年12月15日3000”
“2019-12-16无数据”(不存在基于日期的列)
“数据:2019年12月17日6000”
我不知道如何根据列筛选不存在的记录(行)
可能的样板代码:
db = sqlite3.connect("Database1.db")
cursor = db.cursor()
cursor.execute("""
SELECT * FROM Table1
WHERE Date >= "2019-12-15" and Date <= "2019-12-17"
""")
entry = cursor.fetchall()
for i in entry:
if i is None:
print("No entry found:", i)
else:
print("Entry found")
db.close()
db=sqlite3.connect(“Database1.db”)
cursor=db.cursor()
cursor.execute(“”)
从表1中选择*
在日期> =“2019-1215”和“日期< P>”中,您可能处理这个问题的一般方法使用一个称为日历表的东西,它只是一个包含您希望在报表中看到的所有日期的表。
SELECT
d.dt,
t.Value
FROM
(
SELECT '2019-12-15' AS dt UNION ALL
SELECT '2019-12-16' UNION ALL
SELECT '2019-12-17'
) d
LEFT JOIN yourTable t
ON d.dt = t.Date
ORDER BY
d.dt;
在实践中,如果您长期需要这样做和/或有大量的日期要覆盖,您可以在SQLite数据库中为此目的设置一个真正的日历表。上面的查询只是为了证明概念。感谢您花时间帮助我。我真的非常感谢!因此,在为另一个fe而奋斗之后w hours,这是我所做的。正如你所建议的,我创建了一个真正的日历表,日期从2019-12-01到2020-12-01。数据库名称:CalendarDates;列名=Date``从CalendarDates左侧选择*加入表1上的表1。Date=CalendarDates.Date``我理解你的意思,但我仍然不知道如何查询正如您可能知道的,我对SQL(或一般编程)非常陌生,所以请尽可能地删除。再次感谢!还有…您有什么问题吗?日历表的整个要点是它会生成丢失的记录。SELECT*FROM Table1 LEFT JOIN CalendarDates ON Table1.Date=CalendarDates.Date WHERE Table1.Date不存在
我如何将此概念转换为有效的SQL语句?谢谢再一次!您不需要WHERE
子句,至少不需要您在那里设置的限制。默认情况下,左连接将包括日历表中的每个日期。