SQL Server的LEFT JOIN和WHERE子句(SQL Server LEFT JOIN and WHERE clause)
这是我的代码
SELECT ID, Name, Phone FROM Table1 LEFT JOIN Table2 ON Table1.ID = Table2.ID WHERE Table1.ID = 12 AND Table2.IsDefault = 1当Table2为空时,问题发生,因此,查询不会返回任何内容。
如何保留查询的最后部分AND Table2.IsDefault = 1可选?
我试图用OR来短路查询,但我发现它的工作原理与C#不同,
Here is my code
SELECT ID, Name, Phone FROM Table1 LEFT JOIN Table2 ON Table1.ID = Table2.ID WHERE Table1.ID = 12 AND Table2.IsDefault = 1The problem happens when Table2 is null, so, the query returns nothing.
How do I leave the last part of the query AND Table2.IsDefault = 1 optional?
I've tried to short circuit the query using OR but I've found out that it works different than C#
最满意答案
SELECT ID, Name, Phone FROM Table1 LEFT JOIN Table2 ON Table1.ID = Table2.ID AND Table2.IsDefault = 1 WHERE Table1.ID = 12 SELECT ID, Name, Phone FROM Table1 LEFT JOIN Table2 ON Table1.ID = Table2.ID AND Table2.IsDefault = 1 WHERE Table1.ID = 12更多推荐
发布评论