Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    confrontare due tabelle e trovarne records uguali...

    Ho TABELLA 1 e TABELLA 2
    Entrambe hanno i campi A - B - C - D - E che contengono solo valori numerici e in ordine crescente..

    es. A->1 B->2 C->3 D->4 E->5

    voglio trovare ed eliminare o anche salvare in altra tabella i records delle due tabelle che risultino uguali appunto per questi 5 campi...


    Qual'è il metodo piu rapido.. e indolore... per farlo?

    Graz
    "Vero sapiente è colui che sa di non sapere" (Socrate)

  2. #2

    Re: confrontare due tabelle e trovarne records uguali...

    Originariamente inviato da freetom
    Ho TABELLA 1 e TABELLA 2
    Entrambe hanno i campi A - B - C - D - E che contengono solo valori numerici e in ordine crescente..

    es. A->1 B->2 C->3 D->4 E->5

    voglio trovare ed eliminare o anche salvare in altra tabella i records delle due tabelle che risultino uguali appunto per questi 5 campi...


    Qual'è il metodo piu rapido.. e indolore... per farlo?

    Graz
    Array_diff()

    Ma che riferimento hai con l'altro post???

    Si tratta dello stesso problema?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Array_Diff ()?

    Io avevo capito tabelle SQL
    Forse perche` non ho letto la discussione precedente
    Horazon.

  4. #4
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    avevi capito bene

    TABELLE non array questa volta piero

    "Vero sapiente è colui che sa di non sapere" (Socrate)

  5. #5
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Per trovare i record:

    SELECT *
    FROM TABELLA1 AS T1 INNER JOIN TABELLA2 AS T2
    ON T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Per eliminare i record:

    DELETE TABELLA1,TABELLA2
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

  6. #6
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Re: Re: confrontare due tabelle e trovarne records uguali...

    Originariamente inviato da piero.mac
    Array_diff()

    Ma che riferimento hai con l'altro post???

    Si tratta dello stesso problema?

    quasi...


    ----------Per ora sono arrivato a inserire e visualizzare correttamente gli array dei dati prelevati dalle due tabelle che mi interessano...------------

    non riesco pero' a "sottrarre" l'uno all'altro

    questo il codice per adesso...

    print "NUMERI DA TABELLA 1"."
    ";

    $dati = mysql_query("SELECT * FROM TABELLA1");

    echo "

    ";


    while ( $array = mysql_fetch_array($dati)) {

    $primo=$array["primo"];
    $secondo=$array["secondo"];
    $terzo=$array["terzo"];
    $quarto=$array["quarto"];
    $quinto=$array["quinto"];
    $sesto=$array["sesto"];


    //inserisco valori nell'array...

    $nome_array = array("$primo","$secondo", "$terzo", "$quarto", "$quinto", "$sesto");

    //provo a visualizzarli...


    sort ($nome_array);

    print $nome_array[0]."-".$nome_array[1]."-".$nome_array[2]."-".$nome_array[3]."-".$nome_array[4]."-".$nome_array[5]."
    ";

    }

    echo "

    ";

    print "NUMERI DA TABELLA 2"."
    ";

    $dati2 = mysql_query("SELECT * FROM TABELLA2");

    echo "

    ";


    while ( $array = mysql_fetch_array($dati2)) {

    $primo=$array["primo"];
    $secondo=$array["secondo"];
    $terzo=$array["terzo"];
    $quarto=$array["quarto"];
    $quinto=$array["quinto"];
    $sesto=$array["sesto"];



    //inserisco valori nell'array...

    $nome_array2 = array("$primo","$secondo", "$terzo", "$quarto", "$quinto", "$sesto");

    //provo a visualizzarli...


    sort ($nome_array2);

    print $nome_array2[0]."-".$nome_array2[1]."-".$nome_array2[2]."-".$nome_array2[3]."-".$nome_array2[4]."-".$nome_array2[5]."
    ";

    print "

    ";


    }

    //prova differenza tra array 1 e 2...

    e qui mi fermo... ho provato un sacco di metodi ma non mi funge nessuno mi aggiungeresti il codice che fa la differenza tra array1 di TABELLA 1 (piu' piccola) e array2 di TABELLA 2 (piu' grande)

    GRASSIE INFINITEEE

    "Vero sapiente è colui che sa di non sapere" (Socrate)

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Grazie teuzzo... solo un'altra cosetta...

    Originariamente inviato da Teuzzo
    Per trovare i record:

    SELECT *
    FROM TABELLA1 AS T1 INNER JOIN TABELLA2 AS T2
    ON T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Per eliminare i record:

    DELETE TABELLA1,TABELLA2
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    io devo essere assolutamente sicuro di eliminare il record doppione solo da una tabella e non dall'altra... es. solo da TAB 1 e non da TAB 2

    Il codice che mi hai postato elimina il record doppione da entrambe?

    Grazieee
    "Vero sapiente è colui che sa di non sapere" (Socrate)

  8. #8
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969

    Re: Grazie teuzzo... solo un'altra cosetta...

    Originariamente inviato da freetom
    io devo essere assolutamente sicuro di eliminare il record doppione solo da una tabella e non dall'altra... es. solo da TAB 1 e non da TAB 2

    Il codice che mi hai postato elimina il record doppione da entrambe?

    Grazieee
    DELETE TABELLA1,TABELLA2
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Elimina i record da entrambe



    DELETE TABELLA1
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Elimina i record solo da TABELLA1

  9. #9
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    perfetto!

    Sei un mito
    grazie

    lo provo subitooo
    "Vero sapiente è colui che sa di non sapere" (Socrate)

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Visto che ho bekkato un genio ne approfitto :)

    Originariamente inviato da Teuzzo
    DELETE TABELLA1,TABELLA2
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Elimina i record da entrambe



    DELETE TABELLA1
    FROM TABELLA1 AS T1,TABELLA2 AS T2
    WHERE T1.A=T2.A AND T1.B=T2.B AND T1.C=T2.C AND T1.D=T2.D AND T1.E=T2.E

    Elimina i record solo da TABELLA1

    Se volessi confrontare records uguali indipendentemnete dalla posizione dei valori?

    es. volessi individuare due records uguali ma che risultano in questo modo :

    1-2-3-4-5-6
    2-1-3-5-6-4

    hanno gli stessi valori ma in posizioni dei campi diversi...

    Come potrei fare???

    Ti prometto che dopo un ti scoccio piu'

    GRAZIE ANCORA
    "Vero sapiente è colui che sa di non sapere" (Socrate)

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.