Conosco l'utilizzo di join, ma a volte mi imbatto in una situazione in cui non sono in grado di decidere quale unire sarà adatto, a a sinistra o destra.Come faccio a decidere quando usare giunzioni giuste/giunzioni a sinistra o giunti interni O come determinare quale tabella si trova su quale lato?
Questa è la query in cui sono bloccato.
SELECT count(ImageId) as [IndividualRemaining],
userMaster.empName AS ID#,
CONVERT(DATETIME, folderDetails.folderName, 101) AS FolderDate,
batchDetails.batchName AS Batch#,
[email protected],
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 [email protected] 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
UN DIRITTO join è la stessa di un LEFT JOIN se non con l'ordine delle tabelle acceso. FROM TableA LEFT JOIN TableB == FROM TableB RIGHT JOIN TableA (anche se si utilizza SELECT *, l'ordine delle colonne sarà diverso poiché emette le colonne per ordine di tabella) – GalacticCowboy
possibile duplicato di [Qual è la differenza tra (INNER JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN) in Mysql] (http://stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-full-join-in -mys) – JonH
@JonH: vedere la data di pubblicazione dei due. Se è un problema, ho sicuramente avuto una macchina del tempo o ho sovraccaricato lo StackOverflow. –