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

    popolamento diverse tabelle unica chiave

    Salve, ho due tabelle del tipo

    Nickname
    Password
    Email
    [...ecc...]

    e

    Nickname
    Anno di nascita
    [...ecc...]

    Periodicamente vorrei fare un controllo che non vi siano "buchi" tra le due (tipo ora che ho 9.000 voci sulla prima e 10.500 sulla seconda)...

    avevo creato uno script:


    Codice PHP:
    $a 0;
    $presenza mysql_query("select * from profilo_soglie");
        while (
    $n mysql_fetch_array($presenza)) {$aa++;
        
    $aa $n['nickname'];
        
    $generale mysql_num_rows(mysql_query("select * from profilo_generale where nickname = '$aa'"));
        
            if (
    $generale == 0) {
            
    $nuova mysql_query("insert into profilo_generale (nickname, data_iscrizione) values ('$aa',NOW())"); }
        } 

    però gira MOLTO lentamente e non so nemmeno se lo popola... c'è un modo per fare un controllo se, prendendo il nickname dalla tabella 2, questi è presente anche in tabella 1 e se non c'è, inserirlo?

  2. #2

  3. #3
    Originariamente inviato da MS86
    any help?
    perche' fai due tabelle? se il rapporto e' uno a uno (tab1.nickname <-> tab2.nickname) significa pure che i dati della prima e della seconda tabella sono attributi dello stesso nickname. Quindi non sono duplicati. Basterebbe una sola tabella.

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

  4. #4
    non sono dei duplicati, ma "tabelline" che poi creano una tabella completa di un profilo

    il problema è che mi trovo con X valori sulla tabella A e con X + Y valori sulla tabella B... Y non è una somma di doppioni ma nickname unici che non appaiono sulla tabella A

  5. #5
    Originariamente inviato da MS86
    non sono dei duplicati, ma "tabelline" che poi creano una tabella completa di un profilo

    il problema è che mi trovo con X valori sulla tabella A e con X + Y valori sulla tabella B... Y non è una somma di doppioni ma nickname unici che non appaiono sulla tabella A
    questo dimostra che e' un errore fare due tabelle.

    mi baso su quello che hai scritto:

    Nickname
    Password
    Email
    [...ecc...]

    e

    Nickname
    Anno di nascita
    [...ecc...]

    e' impossibile che ci siano piu' anni di nascita associati allo stesso nickname/email....

    Se fai una tabella unica non hai disallineamenti. Ma non conosco il tuo progetto... il mio e' solo un suggerimento.

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

  6. #6
    Non ci sono più voci per un singolo nickname, solo che certe voci mancano dalla prima tabella...

    Esiste un modo per eliminare quella Y ?

  7. #7
    Originariamente inviato da MS86
    Non ci sono più voci per un singolo nickname, solo che certe voci mancano dalla prima tabella...

    Esiste un modo per eliminare quella Y ?
    fai una query con left join. I record che ricevono NULL sono mancanti .
    codice:
    select *
    from tabella_completa
    left join tabella_incompleta using(Nikname)

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

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.