Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: confronto tra tabelle

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    confronto tra tabelle

    Ciao a tutti, ho finalmente un problema degno di interesse almeno credo.

    All'interno del mio DB in mysql ho due tabelle con gli stessi campi ma con con molti valori
    differenti, quello che vorrei realizzare è una funzione che mi confronti le due tabelle per almeno
    3 campi e mi scriva in una 3a tabella i valori uguali e in una 4 quelli differenti.


    Come posso procedere per reallizare questa cosa?

    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    una roba tipo:
    Codice PHP:
    mysql_select_db($DB$CONN);
    $query_Resultset1 "SELECT * FROM tabella ORDER BY id ASC";
    $Resultset1 mysql_query($query_Resultset1$CONN) or die(mysql_error());
    $row_Resultset1 mysql_fetch_assoc($Resultset1);
    $totalRows_Resultset1 mysql_num_rows($Resultset1);

     do {
    $campoa $row_Resultset1['campoa']; 
    $campob $row_Resultset1['campob']; 
    $campoc $row_Resultset1['campoc'];

    $query_Resultset2 "SELECT * FROM tabella WHERE campoa LIKE '$campoa' and campob like '$campob' and campoc like '$campoc' ORDER BY id ASC";
    $Resultset2 mysql_query($query_Resultset2$CONN) or die(mysql_error());
    $row_Resultset2 mysql_fetch_assoc($Resultset2);
    $totalRows_Resultset2 mysql_num_rows($Resultset2);
    if (
    $totalRows_Resultset2 0) {
    //se ho trovato un record uguale scrivo in una tabella
    } else {
    //se NON ho trovato un record uguale scrivo NELL'ALTRA
    }


     } while (
    $row_Resultset1 mysql_fetch_assoc($Resultset1)); ?> 
    più o meno così?

  3. #3
    Ciao,
    io non lavoro in mysql ma in db2 che utilizza un dialetto sql leggermente diverso comunque non dovrebbe essere difficile adattare la query.

    Mettendo un NOT prima di EXISTS e scambiando le tabelle puoi ottenere tutte le combinazioni di esiste/non esiste da una parte o dall'altra.

    codice:
    INSERT INTO TABELLA_3
    SELECT *
      FROM TABELLA_1 A
     WHERE EXISTS (SELECT *
                     FROM TABELLA_2 B
                    WHERE B.UNO = A.UNO
                      AND B.DUE = A.DUE
                      AND B.TRE = A.TRE)

    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..io sono uno sprecone di risorse..

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    sto cercando di arrivare alla soluzione per piccoli step....


    Inizialmente ho creato una query che mi stampa a video tutti i codici uguali e me li conta

    codice:
    $query = "SELECT * FROM tabella1 INNER JOIN tabella2 WHERE codice_tabella1=codice_tabella2";

    ora vorrei realizzare una query che mi stampa a video tutti i codici differenti delle due tabelle.

    ma ho difficolta con JOIN, ho pensato di scrivere cosi ma mi da un errore

    codice:
    $query = "SELECT * FROM tabella1 INNER JOIN tabella2 WHERE codice_tabella1 != codice_tabella2";
    come imposto in modo corretto la query per vedere i codici differenti?

    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    codice univoco

    telegio

    ho provato la tua soluzione e mi avvicina alla soluzione del problema
    io ora questa situazione

    es.

    codici_tabella A | codici_tabella B | prodotti
    | |
    121 | 321 | pantofola
    629 | 823 | scarpa


    devo trovare un modo per associare un codice o un id univoco al prodotto
    come posso fare???

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..non ho capito..

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    cerco di spiegarmi anche se è difficile lo so....



    io ho due tabelle che contengono codici prodotto e descrizione.

    la tabella_a appartiene ad una azienda

    la tabella_b appartine ad un'altra azienda

    il problema che i prodotti sono gli stessi trattati dalle due aziende
    ma un'azienda ha associato un codice e una descrizione
    e l'altra allo stesso prodotto un'altro codice e un'altra descrizione



    alcuni prodotti hanno lo stesso codice e quindi non c'è problema, invece altri
    prodotti non hanno lo stesso codice


    quindi io voglio estrarre tutti i prodotti dalle due tabelle confrontare quelli uguali e quelli differenti, e questo l'ho fatto con il tuo aiuto, ma a questo punto devo trovare un modo per associare un valore univoco che sia un id_prodotto o altro.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53
    tralasciando per un momento il problema se voglio contare il numero degli elementi uguali


    ho provato con
    codice:
    $n = count($row_Resultset2);
    echo"$n";
    ma mi restituisce 8 che non c'entra nulla come mai?

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    $totalRows_Resultset2 = mysql_num_rows($Resultset2);
    echo $totalRows_Resultset2;

    ..sto ancora cercando di capire cosa ti serve..

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 © 2024 vBulletin Solutions, Inc. All rights reserved.