我知道连接的用法,但有时我会遇到这样的情况,即我无法确定哪个 连接 适合,左或右。
这是我卡住的查询。
SELECT count(ImageId) as [IndividualRemaining],
userMaster.empName AS ID#,
CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate,
batchDetails.batchName AS Batch#,
Client=@ClientName,
TotalInloaded = IsNull(@TotalInloaded,0),
PendingUnassigned = @PendingUnassigned,
InloadedAssigned = IsNull(@TotalAssigned,0),
TotalProcessed = @TotalProcessed,
Remaining = @Remaining
FROM
batchDetails
Left JOIN folderDetails ON batchDetails.folderId = folderDetails.folderId
Left JOIN imageDetails ON batchDetails.batchId = imageDetails.batchId
Left JOIN userMaster ON imageDetails.assignedToUser = userMaster.userId
WHERE folderDetails.ClientId =@ClientID and verifyflag='n'
and folderDetails.FolderName IN (SELECT convert(VARCHAR,Value) FROM dbo.Split(@Output,','))
and userMaster.empName <> 'unused'
GROUP BY userMaster.empName, folderDetails.folderName, batchDetails.batchName
Order BY folderDetails.Foldername asc
最佳答案
是的,这取决于你所处的情况。
为什么要使用 SQL JOIN?
答案:当必须通过 SQL SELECT 语句访问多个表时使用 SQL JOIN,如果 JOIN 的表之间不匹配,则不应返回任何结果。
在 The Code Project 上阅读这篇原创文章对你有很大帮助:Visual Representation of SQL Joins .
另请查看此帖子:SQL SERVER – Better Performance – LEFT JOIN or NOT IN? .
关于mysql - 我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308122/