gpt4 book ai didi

sql - 找出 SQL 选择不返回任何数据原因的工具

转载 作者:行者123 更新时间:2023-11-29 11:52:17 25 4
gpt4 key购买 nike

是否有一种工具可以告诉您(或给您提示)为什么特定的 select 语句在给定数据库中的当前数据的情况下不返回任何行。

例如,如果您有以下 4 个表连接

select * 
from a, b, c, d
where a.b_id = b.id
and b.c_id = c.id
and c.d_id = d.id

如果有行满足条件 a.b_id = b.id 也有行满足 b.c_id = c.id 但没有行满足条件 c.d_id = d.id 它会突出显示 c.d_id = d.id 作为问题。

即它会破坏 where 子句并找出哪些子条件返回 true 并突出显示那些不返回 true 的子条件。

它不适用于复杂的查询,但许多 select 语句是对大量表的简单连接。

这在创建测试数据以测试应用程序代码的和平或调试实时系统的问题时非常有用。

图形解释工具(显示实际执行路径的计划)很接近,但它们显示的信息太多,并且没有突出显示选择 stament 中缺失的链接。

我正在使用 postgres、sqllight 和 mysql,但对其他数据库/平台的工具如何工作很感兴趣。

我也对任何 manula 技术感兴趣。

还有人遇到这个问题吗?

如果我写了这样一个工具会有人感兴趣吗?

最佳答案

我从来没有遇到过这个问题,但我也使用显式连接,所以它通常就像运行部分查询一样简单,直到我找出哪个部分错误地限制了我的结果。

在你的情况下

SELECT *
FROM a -- First run just to here, are there records?
INNER JOIN b
ON a.b_id = b.id -- Then run just to here, is it OK?
INNER JOIN c
ON b.c_id = c.id -- Then run just to here, is it OK?
INNER JOIN d
ON c.d_id = d.id -- Then run just to here, is it OK?

关于sql - 找出 SQL 选择不返回任何数据原因的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/297269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com