Czy możesz mieć INNER JOIN bez słowa kluczowego ON?
Podczas debugowania w niektórych kodach Oracle natrafiłem na to zapytanie:
SELECT TPM_TASK.TASKID FROM TPM_GROUP
INNER JOIN TPM_USERGROUPS ON TPM_GROUP.GROUPID = TPM_USERGROUPS.GROUPID
INNER JOIN TPM_TASK
INNER JOIN TPM_GROUPTASKS ON TPM_TASK.TASKID = TPM_GROUPTASKS.TASKID
INNER JOIN TPM_PROJECTVERSION ON TPM_TASK.PROJECTID = TPM_PROJECTVERSION.PROJECTID AND TPM_TASK.VERSIONID = TPM_PROJECTVERSION.VERSIONID
INNER JOIN TPM_TASKSTAGE ON TPM_TASK.STAGEID = TPM_TASKSTAGE.STAGEID
INNER JOIN TPM_PROJECTSTAGE ON TPM_PROJECTVERSION.STAGEID = TPM_PROJECTSTAGE.STAGEID
ON TPM_GROUP.GROUPID = TPM_GROUPTASKS.GROUPID
Jestem zdezorientowany linią:
INNER JOIN TPM_TASK
Nie widziałemJOIN
bezON
klauzula przed. Również myląca jest linia:
ON TPM_GROUP.GROUPID = TPM_GROUPTASKS.GROUPID
To wydaje się przypadkoweON
klauzula bez dopasowaniaJOIN
. Zapytanie jest uruchamiane bez błędów i zwraca kilka danych, więc oczywiste jest, że składnia jest całkowicie poprawna. Czy ktoś może rzucić trochę światła na to, co się tutaj dzieje?