Visualizzazione dei risultati da 1 a 2 su 2

Discussione: ordine nelle join

  1. #1

    ordine nelle join

    Ho 3 tabelle identiche(tab1, tab2, tab3) con 2 campi: id e descrizione.

    perchè mysql(e access) non mi permettono di fare la query:
    SELECT tab1.*, tab2.*, tab3.*
    FROM (tab1 RIGHT JOIN tab2 ON tab1.id = tab2.id) RIGHT JOIN tab3 ON
    tab1.id = tab3.id;
    ???

    mi sembra (provando) che mysql(e access) consentano di fare delle query
    contenenti piu' join solo se tali join producono lo stesso risultato
    comunque le sposti.
    tipo:

    SELECT tab1.*, tab2.*, tab3.*
    FROM (tab1 LEFT JOIN tab2 ON tab1.id = tab2.id) RIGHT JOIN tab3 ON tab1.id
    = tab3.id;
    è uguale(e quindi consentita) a
    SELECT tab1.*, tab2.*, tab3.*
    FROM (tab1 RIGHT JOIN tab3 ON tab1.id = tab3.id)LEFT JOIN tab2 ON tab1.id
    = tab2.id;

    mentre nel primo caso che ho mostrato(quello con la doppia right join)
    cambiando l'ordine delle join puo' cambiare il risultato

    mi sto inventando tutto o son cose verosimili??? :-)

    grazie

  2. #2
    ho provato e nel nuovo mysql funziona anche:
    SELECT tab1.*, tab2.*, tab3.*
    FROM (tab1 RIGHT JOIN tab2 ON tab1.id = tab2.id) RIGHT JOIN tab3 ON
    tab1.id = tab3.id;

    dandomi diversi risultati se inverto l'ordine delle join

    penso che solo per le inner join si possa invertire l'ordine tranquillamente senza che il risultato cambi

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.