Sql server 复杂t-sql查询的故障排除策略
这是我在这里的第一篇文章,虽然我已经在这个网站上很多次了。 我试图找到一个答案,但没有找到一个解决我的问题 我正在处理的T-SQL查询: 选择大约120个字段, 大约有40个联接[其中几个联接包含'Selects'] 不返回任何数据。 我不知道SQL的起源,但它可能有有用的逻辑/连接,并且应该返回数据 对查询进行故障排除/解密的最佳方法是什么 谢谢 遵循建议后,我发现Join语句中缺少了几个语法错误“ON”子句,并且发现了排除数据的连接。第一个是指向未包含在“选择字段”列表中的表。如果有一个表的连接,但没有返回任何行,这是一个“问题”还是打算使用该连接排除行?在这一点上,数据本身对我来说是新的,否则我可能不会问这个问题Sql server 复杂t-sql查询的故障排除策略,sql-server,tsql,Sql Server,Tsql,这是我在这里的第一篇文章,虽然我已经在这个网站上很多次了。 我试图找到一个答案,但没有找到一个解决我的问题 我正在处理的T-SQL查询: 选择大约120个字段, 大约有40个联接[其中几个联接包含'Selects'] 不返回任何数据。 我不知道SQL的起源,但它可能有有用的逻辑/连接,并且应该返回数据 对查询进行故障排除/解密的最佳方法是什么 谢谢 遵循建议后,我发现Join语句中缺少了几个语法错误“ON”子句,并且发现了排除数据的连接。第一个是指向未包含在“选择字段”列表中的表。如果有一个表的
谢谢 非常简单-一次从/加入一个 如果联接具有select,则测试该select
select cols
from table
where =...
然后
构建它,直到得到错误的答案并修复它您可以使用CTE来降低复杂性并删除子查询连接。但是,您必须理解查询才能完全重构它。CTE在连接部分?我的部分问题是如何理解[破译]。。。对于从哪里开始理解查询并将其组合起来,是否有公认的最佳实践?如何吃大象?一次咬一口,把它分解。把一切都说出来。一次向联接添加一个表。查看返回空结果集的原因。谢谢,@Amir。哈哈@lad2025!:D
select cols
from table
join table1
on
where