【发布时间】:2020-12-25 03:44:06
【问题描述】:
我正在调试带有未返回正确结果的相关子查询的 SELECT 查询。我的查询形式是示意性的
SELECT id, cost, country
FROM table AS table1
WHERE table1.cost =
(
SELECT MAX(table2.cost)
FROM table as table2
WHERE table2.country = table1.country
)
我希望能够在执行过程中暂停并查看 WHERE 语句中正在比较的值。但是,例如,如果我将 PRINT 语句作为子查询的第一行,它似乎不会运行。我是 SQL 新手,很想知道在这种情况下,更有经验的人认为什么是最省时的调试方法。
【问题讨论】:
-
SELECT MAX(cost) FROM table as table2返回什么?顺便说一句,该子查询不相关。它需要一个 WHERE 子句条件引用 table1。 -
这里没有什么要调试的,我不知道有什么更好的方法,但是要查看
table1的每个成本的比较,只需将子查询作为列放在选择子句并运行不带where子句的语句 -
示例存在问题,我刚刚修复了它,感谢您指出这一点。但我并没有特别询问我在这里写的查询,我只是想知道是否有可能,一般来说,在子查询中间暂停以查看特定变量采用的值,以便进行调试。或者如果这不可能,除了写出代码的子集以查看它们是否正常工作之外,还有什么更好的调试方法?
-
什么是正确的结果?目前,您将获得每个国家/地区最高费用的行。
标签: sql sqlite debugging select