database - 如何从一个表中调用 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 的任何见解?两个表都来自同一个数据库。
解决方案
该列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
。
推荐阅读
- spring-integration - Spring集成多个轮询器
- git - 自上次合并以来的 Git 修订范围,包括该合并
- javascript - 更新未包含在 act(...) 中,并且模拟函数未触发。反应测试库,开玩笑
- haskell - Haskell:“约束中的非类型变量参数:Eq Bit”和“没有使用 '==' 产生 (Eq Bit) 的实例”
- javascript - 是否可以将此列作为数组进行迭代(并且效率更高)?
- java - 如何解决 Spring Cloud Stream 中的“IllegalArgumentException:无法为返回值的方法设置条件”?
- sorting - 电源 BI。基于另一列对具有重复值的列进行排序
- javascript - 尝试创建分离卡
- python - 无法反转重塑的 numpy 数组
- flutter - _googleSignIn.signInSilently() 不起作用