Tengo tres tablas: R, S y P.SQL unir tres tablas, unir a la precedencia
Tabla R Se une con S a través de una clave externa; no debería ser al menos un registro en S, por lo que pueden unirse a:
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
Si no hay ningún registro en S entonces consigo ninguna fila, eso está bien.
Entonces mesa S se une con P, donde P es registros pueden o pueden no estar presentes y se unieron con S.
Así que hago
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
LEFT JOIN P ON (P.id = S.fkp)
¿Qué pasa si yo quería que el segundo se unen para ser atado a S no a R, como si pudiera utilizar paréntesis:
SELECT
*
FROM
R
JOIN (S ON (S.id = R.fks) JOIN P ON (P.id = S.fkp))
O es que ya es un comportamiento natural del producto cartesiano entre R, S y P?
¿Puede explicar esta parte "¿Qué pasa si yo quería que el segundo se unen para ser atado a S no a R" En este momento las tablas se combinan como R unirse con S y luego a la izquierda unirse con P. –
Estoy intentando para entender si hay una manera en que puedo dar prioridad a las uniones, como si fueran operadores aritméticos. No entiendo si esto está implícito en la condición de unión o no. – vulkanino
Dénos un ejemplo de datos de lo que espera lograr que sea diferente de una unión ordinaria y podemos mostrarle mejor qué hacer. Es posible que una tabla derivada haga lo que usted desea, pero no estoy seguro exactamente de lo que quiere. – HLGEM