加入或条件

use*_*480 1 t-sql sql-server

有没有更有效的方法来写这个?我不确定这是实现这一点的最佳方式。

select * 
from stat.UniqueTeams uTeam
Left Join stat.Matches match 
on match.AwayTeam = uTeam.Id or match.HomeTeam = uTeam.id
Run Code Online (Sandbox Code Playgroud)

Bac*_*cks 6

OR in JOINS 是一种不好的做法,因为 MSSQL 不能以正确的方式使用索引。更好的方法 - 在 UNION 中使用两个选择:

SELECT * 
FROM stat.UniqueTeams uTeam
LEFT JOIN stat.Matches match 
ON match.AwayTeam = uTeam.Id

UNION

SELECT * 
FROM stat.UniqueTeams uTeam
LEFT JOIN stat.Matches match 
ON match.HomeTeam = uTeam.id
Run Code Online (Sandbox Code Playgroud)