Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [mysql] Problemi di full join

    Salve a tutti,
    sto provando un pò di query sy mysql 5.1.qualcosa, e noto che come join esterni mi fa fare solo LEFT e RIGHT, il full join mi da errore di sintassi.

    Ovvero se faccio questa query funziona:

    codice:
    SELECT * FROM clienti c RIGHT JOIN ordini o ON c.CodCLiente = o.CodCliente;
    Se invece provo a fare un full join con questa query:

    codice:
    SELECT * FROM clienti c FULL JOIN ordini o ON c.CodCLiente = o.CodCliente;
    Mi da errori di sintassi.

    Probabilmente mi sfugge qualcosa sulla sintassi del FULL JOIN per quanto il comando l'ho copiato pari pari dalle dispense che sto seguendo. Ed effettivamente se su mysql do "help join" sull full join non dice nulla.

    Vi ringrazio in anticipo,
    Neptune;
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Mysql non lo supporta. Esistono comunque diversi modi per aggirare il problema.

    http://www.xaprb.com/blog/2006/05/26...join-in-mysql/


  3. #3
    Originariamente inviato da nicola75ss
    Mysql non lo supporta. Esistono comunque diversi modi per aggirare il problema.

    http://www.xaprb.com/blog/2006/05/26...join-in-mysql/

    Trattandosi di un esame non così specifico dubito che capiterà la cosa, anche se è da tener presente per future applicazioni. Credevo solo di aver fatto un errore di sintassi, invece non esiste proprio, daccordo.

    Piccolo dubbio, ma in mysql vedo che c'è:

    Inner Jon
    <LEFT|RIGHT>[OUTER]JOIN
    NATURAL [<LEFT|RIGHT>[OUTER]]JOIN

    Ma che differenza c'è tra i tre comandi?

    Ho visto che il NATURAL semplcemente è un join naturale è quindi non richiede il comando ON, mentre il JOIN dovrebbe essere un theta join. Se poi metto LEFT e RIGHT me li prende come join esterni e fin qui tutto bene.

    Ma se do un INNER JOIN o un JOIN senza clausola mi fa un prodotto cartesiano? ma a questo punto sia INNER JOIN che JOIN si comportano in maniera identica o c'è qualcosa che mi sfugge?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

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.