Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Discussione: Aiuto Query MySQL

  1. #11
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    243
    Ho provato


    SELECT tsoggetti.id, eventi.id, tsoggetti.soggetto

    FROM eventi, tsoggetti

    WHERE

    eventi.id = '1'

    AND

    tsoggetti.soggetto NOT LIKE (SELECT soggetti.soggetto FROM soggetti WHERE idev = '1')

    ORDER BY soggetto


    Ma dice sche la subquery fornisce piu di una riga....
    Come si potrebbe fare....

  2. #12
    codice:
    select *
    from tsoggetti t
    left join soggetti s on t.soggetto = s.soggetto
    where s.oggetto IS NULL
    dovrebbe darti la lista dei soggetti presenti in t.soggetti e mancanti in soggetti.

    Guarda comunque che con tutta la tua buona volanta' (e un po' della mia) non capisco quello che vuoi fare ed il perche'. Si capisce solo che vuoi copiare dei dati da due tabelle ad un altra.

    quindi hai due liste di oggetti ed un tabella di unione che identifica un soggetto abbinandolo ad un evento. Questo si e' capito. Quello che NON si capisce e' il criterio con cui dovresti fare questi abbinamenti... che e' poi determinante.

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

  3. #13
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    243
    Grazie proverò ad esaminare la tua query..

    Ora ti spiego il meccanismo..

    L'utente inserisce gli eventi nella apposita tabella...

    Siccome per ogranizzare un evento entrano in gioco molti soggetti.. pensa ad esempio sedie, tavoli, palchi ecc e ognuno di questi soggetti fornisce servizi diversi...

    L'utente può cliccare su un tasto soggetti nel programma che esegue una query sql.

    La query va a prendere la lista dei diversi soggetti nel template e la copia nella tabella soggetti che conterra i soggetti di tutti gli eventi sempre copiati dal template...

    Il sistema del template serve perchè negli anni i soggetti cambiano alcuni nuovi alcuni andranno cancellati e la possibilità di personalizzare il template è una caretteristica del mio programma...

    Tieni poi conto che ho un altra tabella con le attività di ogni soggetto di ogni evento..
    Ci sono paremetri tipo quantità e costo che serviranno alla fine dell' anno ad esempio come dato statistico per determinare se conviene ad esempio noleggiare un palco o comperarlo ecc ecc...

    Il mio problema era che se un utente compila la scheda dei soggetti/attivita (MOLTO ARTICOLATA) e alla fine si accorge che deve inserire una nuova voce, deve reinizializzare la scheda perdendo i dati inseriti... se invece controllo solo la nuova voce nel template e la inserisco non perdo i dati gia compilati...

  4. #14
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    243
    Ciao ho provato


    select *
    from tsoggetti t
    left join soggetti s on t.soggetto = s.soggetto
    where s.soggetto IS NULL


    Inserendo prima un nuovo record in tsoggetti mi restituisce il record nuovo che ovviamente non compare in soggetti...

    Ultima cosa.. questo va benissimo ma dovrei in fine limitare questa join ai record che in SOGGETTI.IDEV = 'NUMERO ID CHE VOGLIO'..

    Ho fatto un po' di prove ma non sono riuscito...

    Mi puoi aiutare?

  5. #15
    mi pare logico... che non ci sia.

    caso mai devi mettere la condizione su tsoggetti perche' l'altra tabella ti rende i record che sono NULL.

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

  6. #16
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    243
    Sono sicuro che il tuo approccio sia sicuramente più logico del mio in quanto sicuramente più matematico e più approfondito di quanto ho avuto tempo di fare...


    In ogni caso ho pensato di procedere così

    select *
    from tsoggetti t
    left join (SELECT soggetto FROM soggetti WHERE idev = '75') s on t.soggetto = s.soggetto
    where s.soggetto IS NULL


    Non ho compreso il tuo precedente suggerimento..

  7. #17
    Utente di HTML.it
    Registrato dal
    Mar 2000
    Messaggi
    243
    Bene ho sistemato il problema in questo modo.. sembra funzionare bene anche se è un po' articolato..


    INSERT INTO soggetti (idu,idev,soggetto)

    (

    SELECT t.id, eventi.id, t.soggetto

    FROM eventi, tsoggetti t

    LEFT JOIN (SELECT soggetto FROM soggetti WHERE idev = '75') s on t.soggetto = s.soggetto

    WHERE s.soggetto IS NULL AND eventi.id = '75'

    )




    INSERT INTO soggetti (idu,idev,attivita)

    (

    SELECT t.ids, eventi.id, t.attivita

    FROM eventi, tattivita t

    LEFT JOIN (SELECT attivita FROM attivita WHERE idev = '75') a on t.attivita = a.attivita

    WHERE a.attivita IS NULL AND eventi.id = '75'

    )


    Grazie per la collaborazione, spunto e suggerimenti...

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.