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

    Confronto contenuto due tabelle

    Salve,

    sto cercando di impostare uno script che verifichi se il contenuto di due tabelle in un db mysql (identiche nella struttura) sia diverso. Non il numero di record ma proprio il contenuto.

    grazie per l'aiuto

  2. #2
    Questa query:

    codice:
    SELECT c1, c2, ..., cn 
    FROM
     (
       SELECT t1.c1, t1.c2, ..., t1.cn 
       FROM t1
       UNION ALL
       SELECT t2.c1, t2.c2, ..., t2.cn 
       FROM t2 
    )  t
    GROUP BY c1, c2, ..., cn 
    HAVING COUNT(*) = 1
    ORDER BY c1;

    tira fuori tutti i record delle tabelle t1 e t2 aventi colonne c1, c2, ..., cn uguali.
    Per cui se il risultato è vuoto allora i record sono tutti uguali.

    Se invece vuoi fare tutto in PHP non ti resta che eseguire due query e scorrere i risultati facendo una serie di confronti.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Questa query:

    codice:
    SELECT c1, c2, ..., cn 
    FROM
     (
       SELECT t1.c1, t1.c2, ..., t1.cn 
       FROM t1
       UNION ALL
       SELECT t2.c1, t2.c2, ..., t2.cn 
       FROM t2 
    )  t
    GROUP BY c1, c2, ..., cn 
    HAVING COUNT(*) = 1
    ORDER BY c1;

    tira fuori tutti i record delle tabelle t1 e t2 aventi colonne c1, c2, ..., cn uguali.
    Per cui se il risultato è vuoto allora i record sono tutti uguali.

    Se invece vuoi fare tutto in PHP non ti resta che eseguire due query e scorrere i risultati facendo una serie di confronti.
    Grazie!

    ho provato ad eseguire la query con un solo campo giusto per prova ma mi restituisce l'errore no database selected


    SELECT `DT_AGGIORN_RMT` FROM


    (
    SELECT BLOCCO_AN_RISORSE.DT_AGGIORN_RMT
    FROM BLOCCO_AN_RISORSE
    UNION ALL
    SELECT BLOCCO_AN_RISORSE_CHK.DT_AGGIORN_RMT
    FROM BLOCCO_AN_RISORSE_CHK
    ) t


    GROUP BY DT_AGGIORN_RMT
    HAVING COUNT(*) = 1

  4. #4
    Quote Originariamente inviata da lucky2 Visualizza il messaggio
    Grazie!

    ho provato ad eseguire la query con un solo campo giusto per prova ma mi restituisce l'errore no database selected
    Il che non c'entra nulla con la query. E' ovviamente un errore nel codice PHP.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    ma non la sto eseguendo in PHP! la eseguo direttamente in mysql per provare il risultato


    Errore
    query SQL:
    SELECT `DT_AGGIORN_RMT`
    FROM (


    SELECT BLOCCO_AN_RISORSE.DT_AGGIORN_RMT
    FROM BLOCCO_AN_RISORSE
    UNION ALL
    SELECT BLOCCO_AN_RISORSE_CHK.DT_AGGIORN_RMT
    FROM BLOCCO_AN_RISORSE_CHK
    )t
    GROUP BY DT_AGGIORN_RMT
    HAVING COUNT( * ) =1
    LIMIT 0 , 30
    Messaggio di MySQL:
    #1046 - No database selected

  6. #6
    Ho provato la query prima di postarla e a me non da alcun problema.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.