首页 > 解决方案 > 如何从一个表中调用 SQL 顺序函数作为对另一个表的引用?

问题描述

我想使用 SQL Order DESC 对名为“People”的表中的“Name”列进行排序,该 SQL 顺序 DESC 在名为“Report”的单独表中引用“ReportID”列,执行以下操作:

cur.execute("""SELECT "Name" FROM People WHERE "ID" IN (SELECT "ID" FROM Report WHERE "ReportID" = ?) ORDER BY "Date" DESC""", (var,)

相反,我收到错误提示: sqlite3.OperationalError: no such column: Date

关于我可以做些什么才能正确调用 Date 的任何见解?两个表都来自同一个数据库。

标签: databasesqlite

解决方案


该列date仅在 operator 的子查询中可见IN

加入表,然后您可以使用子句date中的列:ORDER BY

SELECT DISTINCT p.Name 
FROM People p INNER JOIN Report r 
ON r.ID = p.ID 
WHERE r.ReportID = ? 
ORDER BY r.Date DESC

DISTINCT如果表中没有重复匹配行的情况,您可以删除Report


推荐阅读