+ Rispondi alla Discussione
Risultati da 1 a 7 di 7

problema query mysql

Ultimo Messaggio di altraSoluzione il:
  1. #1
    Utente Premium
    Data Registrazione
    Mar 2009
    Località
    Udine
    Messaggi
    520

    problema query mysql

    Sarà anche un problema banale, ma è da mezz'ora che ci sto sbattendo la testa senza venirne fuori... quindi chiedo.

    Ho il seguente problema in mysql:
    - ho due tabelle: A (diciamo, un migliaio di record) e B (un centinaio di record)
    - campi tabella A: Id, campo1, campo2, campo3 ...
    - campi tabella B: Id, campo5, campo6 ...

    Devo trovare una query che, per ogni id di tabella A che esista anche in tabella B, sostituisca campo1 con il corrispondente valore in campo5 ... e che faccia la ricerca e l'eventuale operazione per tutti i 1000 record di tabella A

    Qualcuno sa darmi una dritta?

  2. #2
    Utente Premium
    Data Registrazione
    Jun 2017
    Località
    Espoo, Finland
    Messaggi
    313
    Quale e' il campo comune tra le due tabelle?

  3. #3
    Utente Premium
    Data Registrazione
    Mar 2009
    Località
    Udine
    Messaggi
    520
    Citazione Originariamente Scritto da SkyLinx Visualizza Messaggio
    Quale e' il campo comune tra le due tabelle?
    Il campo comune è Id

  4. #4
    User L'avatar di FedeMasiero
    Data Registrazione
    Jul 2015
    Località
    Maserà di Padova
    Messaggi
    40
    Ciao Archimede2007,
    crei un file .php con questo codice, modifica i campi dei nomi:

    Codice:
    <?php
    //mi connetto al database
    $db = mysqli_connect("localhost","username","password","nome_DB");
    
    
    //seleziono tutti i campi delle tabelle A e B
    $queryA = "SELECT * FROM TabellaA";
    $queryB = "SELECT * FROM TabellaB";
    $resultA = mysqli_query($db, $queryA);
    $resultB = mysqli_query($db, $queryB);
    
    
    //faccio un ciclo della tabellaA con interno uno della tabella B
    while($rowA = mysqli_fetch_array($resultA)){
        $idA = $rowA["id"];
        while($rowB = mysqli_fetch_array($resultB)){
            $idB = $rowB["id"];
            
            //se gli ID sono uguali lancio una query che sostituisce il campo1 con il campo 5
            if($idB == $idA){
                $queryTMP = "UPDATE TabellaA SET campo1 = ".$rowB["campo5"]." WHERE id = ".$idA;
                mysqli_query($db, $queryTMP);
                break;
            }
        }
    }
    ?>
    Federico Masiero

  5. #5
    User L'avatar di altraSoluzione
    Data Registrazione
    Jun 2017
    Località
    Roma
    Messaggi
    130
    Segui altraSoluzione su Twitter Aggiungi altraSoluzione su Google+ Aggiungi altraSoluzione su Facebook Aggiungi altraSoluzione su Linkedin Visita il canale Youtube di altraSoluzione
    Buongiorno e scusate se m'intrometto ma... ammesso ch'io abbia capito bene il problema, non sarebbe più semplice una cosa del genere?

    Codice:
      UPDATE a table1 
       JOIN b table2 ON table1.id = table2.id
       SET table1.campo1 = table2.campo5

  6. #6
    Utente Premium
    Data Registrazione
    Mar 2009
    Località
    Udine
    Messaggi
    520
    Citazione Originariamente Scritto da altrasoluzione Visualizza Messaggio
    buongiorno e scusate se m'intrometto ma... Ammesso ch'io abbia capito bene il problema, non sarebbe più semplice una cosa del genere?
    perfetto!!!!!
    Era proprio quello che stavo cercando, grazie!

  7. #7
    User L'avatar di altraSoluzione
    Data Registrazione
    Jun 2017
    Località
    Roma
    Messaggi
    130
    Segui altraSoluzione su Twitter Aggiungi altraSoluzione su Google+ Aggiungi altraSoluzione su Facebook Aggiungi altraSoluzione su Linkedin Visita il canale Youtube di altraSoluzione
    Prego! Lieto di essere stato utile!

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.