Visualizzazione dei risultati da 1 a 3 su 3

Discussione: insiemi in mysql

  1. #1

    insiemi in mysql

    Ciao a tutti, ho due query es:

    query1:"SELECT tb1.*,max(tb2.data) as data_2
    FROM tb1,tb2
    WHERE tb1.codice1=tb2.codice2
    GROUP BY tb1.codice1"

    query2:"SELECTtb1.*,max(tb2.data) as data_2
    FROM tb1,tb2
    WHERE tb1.codice1<>tb2.codice2
    AND tb2.data= ''
    GROUP BY tb1.codice1"

    - la prima estre il massimo di data sulla tb2 che ha corrispondenza di codice su tb1.

    - la seconda query dovrebbe estrarre le date (che saranno vuote) che non trovano corrispondenza di codice tra le due tabelle.

    La prima query funziona trovando le varie corrispondenze di record tra le due tabelle, ma la seconda query invece di estrarre solamente i campi presenti su tb1 che non hanno corrispondenza di codice su tb2,estre tutti i campi compresi quelli senza corrispondenza mettendo il campo data a 0000-00-00.

    Ha me servirebbe trovare solamente i campi presenti in tb2 che non hanno corrispondenza di codice in tb1 come posso fare??
    Io provavo con l'EXCEPT ma non funziona, probabilmente la mia versione di mysql non supporta questa funzione.....Grazie Ciao!!!

  2. #2
    se prevedi che una tabella (tb2) abbia piu' record non riferiti in tb1 e vuoi vedere questi record di tb2 non riferiti, devi usare un right join (nel tuo caso) e non una inner join.

    codice:
    query2: "SELECTtb1.*, max(tb2.data) as data_2
    FROM tb1
    right join tb2 ON tb1.codice1 = tb2.codice2
    WHERE tb1.codice1 IS NULL
    AND tb2.data = '' 
    GROUP BY tb2.codice2"
    ho lasciato come hai scritto tu, ma non ha senso select tb1.* se si richiedono i campi inesistenti. cosi' come il raggruppamento deve essere sulla tb2.

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

  3. #3
    Grazie mille ho sistemato per tutti quelli che volessero dare un occhiata questa è la query esatta

    SELECT tb1.codice
    FROM tb1
    LEFT JOIN tb2
    ON tb2.codice= tb1.codice
    WHERE tb2.codice IS NULL

    Ciao!!

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.