【发布时间】:2021-03-14 22:50:55
【问题描述】:
我对何时使用 HAVING 和何时使用 WHERE 感到困惑。我需要
查找与 /main.html 相关的软件 Debugger 上的所有错误
这是我的查询
select Tickets.TicketID, b.Data
from Bugs b
Inner Join Tickets
On b.TicketID = Tickets.TicketID
Inner Join Softwares
on Software.SoftwareId = Tickets.SoftwareID
where Software.URL = 'http://debugger.com' and Tickets.Title = '/main.html'
注意:这给了我想要的结果 但我想确保我在这里没有遗漏任何重要的东西。也许我应该在这里的某个地方使用 HAVING?
另外为了让查询在大型数据集上表现更好,我在外键上创建了一个索引
create nonclustered index IX_Tickets_SoftwareId
on [dbo].[Tickets] ([SoftwareId])
go
create nonclustered index IX_Bugs_TicketsId
on [dbo].[Bugs] ([TicketsId])
还好吗?
【问题讨论】:
标签: sql sql-server inner-join where-clause having-clause