我试图在一个查询中返回不同的结果,特别是查询返回ranking一个特定的competition 使用round.id字段,现在有时候这个表可以有字段值group.id,如果是这样我只需要返回具有group.id最小值的排名,所以我创建了这个设计:
SELECT l.*,
t.name as team_name,
r.name AS rank_name,
r.color AS rank_color
FROM league_ranking l
LEFT JOIN team t ON l.team_id = t.id
LEFT JOIN competition_ranks r ON l.rank = r.id
INNER JOIN competition_groups g
WHERE l.round_id = :round_id
AND l.group_id = (
SELECT MIN(l2.group_id)
FROM league_ranking l2
WHERE l2.round_id = :round_id
)
Run Code Online (Sandbox Code Playgroud)
这个工作如果排名记录有group.id可用,但是如果这个字段NULL什么也不会返回,表示league_ranking数据的一个小例子:
| round_id | group_id | team_id
5 3 1045
5 …Run Code Online (Sandbox Code Playgroud) 我发现了一个奇怪的问题NetCore,当您在服务器上运行应用程序时,堆栈跟踪没有行号,所以不添加行号。我使用创建了一个console应用程序dotnet new console,添加了以下代码:
using System;
namespace bar2
{
class Program
{
static void Main(string[] args)
{
try
{
throw new InvalidOperationException("some error");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
稍后我使用运行应用程序 dotnet run
上面的代码将打印:
System.InvalidOperationException: some error
at bar2.Program.Main(String[] args)
Run Code Online (Sandbox Code Playgroud)
请注意,如果在linux上执行,则没有行号(文件夹中有pdb文件)。
我怎样才能解决这个问题?对于生产应用程序而言,真的很难复制该错误,因为每次我都不知道文件行号时,我只会看到错误...
NetCore Info .NET命令行工具(2.1.200)
Product Information:
Version: 2.1.200
Commit SHA-1 hash: 2edba8d7f1
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.200/
Host (useful for …Run Code Online (Sandbox Code Playgroud)