Ho tre tabelle: R, S e P.SQL che unisce tre tabelle, unire precedenza
Tabella R Si unisce con S attraverso una chiave esterna; ci dovrebbe essere almeno un record in S, quindi mi possono aderire:
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
Se c'è nessun record in S allora ottengo nessuna riga, va bene.
Poi tavolo S unisce con P, in cui record è P possono o non possono essere presenti e uniti con S.
Così faccio
SELECT
*
FROM
R
JOIN S ON (S.id = R.fks)
LEFT JOIN P ON (P.id = S.fkp)
E se io volessi il secondo si uniscono per essere legato a S non R, come se potessi utilizzare le parentesi:
SELECT
*
FROM
R
JOIN (S ON (S.id = R.fks) JOIN P ON (P.id = S.fkp))
O è già un comportamento naturale del prodotto cartesiano tra R, S e P?
Puoi approfondire questa parte "E se volevo il secondo si uniscono per essere legato a S non R" In questo momento le tabelle vengono unite come R unendosi con S e poi a sinistra unirsi a P. –
sto cercando per capire se c'è un modo in cui posso dare la precedenza ai join, come se fossero operatori aritmetici. Non capisco se questo è implicito nella condizione di join o meno. – vulkanino
Dai a noi un esempio di dati di ciò che speri di ottenere è diverso da un comune join e possiamo mostrarti meglio cosa fare. È possibile che una tabella derivata possa fare ciò che vuoi, ma non sono sicuro di quello che vuoi. – HLGEM