La cláusula INNER JOIN (o solamente JOIN, es lo mismo) puede escribirse varias veces en un solo SELECT. El primer JOIN obtiene un conjunto resultado, el segundo JOIN usa ese conjunto resultado más los datos de la segunda tabla o vista para obtener otro conjunto resultado y así sucesivamente.

El primer conjunto resultado siempre es el que más filas tiene, los demás pueden tener igual cantidad de filas o menor cantidad de filas, pero nunca mayor cantidad de filas. Por ejemplo:

El primer JOIN devuelve 40 filas, el segundo JOIN puede devolver 40 filas o menos de 40 filas. Supongamos que devolvió 30 filas. Entonces el tercer JOIN puede devolver 30 filas o menos que 30 filas. Supongamos que devolvió 25 filas. El cuarto JOIN puede devolver 25 filas o menos de 25 filas, y así sucesivamente.

SELECT
   P.PRD_CODSUC,
   S.SUC_NOMBRE AS PRD_NOMSUC,
   P.PRD_CODIGO,
   P.PRD_NOMBRE,
   P.PRD_CODMAR,
   M.MAR_NOMBRE
FROM
   PRODUCTOS P
JOIN
   SUCURSALES S
      ON P.PRD_CODSUC = S.SUC_CODIGO
JOIN
   MARCAS M
      ON P.PRD_CODSUC = M.MAR_CODSUC AND
         P.PRD_CODMAR = M.MAR_CODIGO

Aquí podemos ver que hay dos JOIN. El primero relaciona a la tabla de PRODUCTOS con la tabla de SUCURSALES y el segundo relaciona a la tabla de PRODUCTOS con la tabla de MARCAS. La tabla de MARCAS tiene un índice compuesto por las columnas MAR_CODSUC y MAR_CODIGO, por eso el JOIN se hace sobre ambas columnas.

Supongamos que la tabla de PRODUCTOS tenga 2.000 filas y la tabla de SUCURSALES tenga 4 filas, pero de esas 4 filas solamente 3 se están usando en la tabla de PRODUCTOS. Entonces en el conjunto resultado del primer JOIN solamente podremos referenciar a esas 3 filas.

Supongamos ahora que la tabla de MARCAS tiene 125 marcas pero solamente 112 de ellas se están usando en la tabla de PRODUCTOS. Entonces en el conjunto resultado solamente  podremos referenciarnos a esas 112 marcas.