Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di tornu
    Registrato dal
    Jul 2001
    Messaggi
    63

    Update from Select

    Buona sera a tutti,
    e da un po' che non postavo più in Html anche se vi leggo sempre, ma dopo aver girato e letto "tonnellate" di documentazione su Mysql e Sql e non avendo trovato risposta al mio problema siete rimasti la mia ultima spiaggia, praticamente il mio problema consiste nell' aggiornare i campi di una tabella selezionando i dati da un' altra tabella filtrati da condizioni, se possibile con un' unica query.
    Per spiegarmi meglio vi posto una query che ho provato (...ma non funziona ), ma vi dà un'idea di quello che voglio ottenere
    codice:
    UPDATE tabella1 SET (campo1, campo2, campo3, campo4) = 
    (SELECT campoA, campoB, campoC, campoD 
    FROM tabella2
    WHERE campoX BETWEEN 1 AND 10)
    WHERE tabella1.campoZ = 'pippo'
    Vi ringrazio anticipamente per qualsiasi consiglio.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ma se questa query

    codice:
    SELECT campoA, campoB, campoC, campoD 
    FROM tabella2
    WHERE campoX BETWEEN 1 AND 10
    restituisce più record, nella tabella1 come identifichi quali valori assegnare ai campi a,b,c e d?
    Esiste un id comune alle due tabelle?

  3. #3
    Utente di HTML.it L'avatar di tornu
    Registrato dal
    Jul 2001
    Messaggi
    63
    Grazie alla tua osservazione ho capito che stavo eseguendo una query non corretta.
    Questo mi riporta al mio problema iniziale che ho tentato di risolvere con la query postata.

    Praticamente devo eseguire un INSERT sulla Tabella_A composta da vari campi, due campi devono contenere dei dati fissi inseriti manualmente, per esempio
    campo1 = XX
    campo2 = ZZ

    i restanti campi: campo3, campo4, campo5...ect... devono essere popolati da una SELECT che preleva i dati filtrati da condizioni dalla Tabella_B.

    Riesco a popolare la Tabella_A con i dati selezionati nella Tabella_B quello che non riesco ad ottenere è inserire conteporaneamente anche i dati "fissi" nei campi campo1 e campo2.

    Spero di essermi spiegato.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da tornu
    Spero di essermi spiegato.
    Assolutamente no.

    Nel primo posto parlavi di update, nell'ultimo parli di una query di inserimento sulla base dei dati presenti in un'altra tabella. Sarebbe meglio che postassi un dump rappresentativo delle due tabelle e il risultato che vorresti ottenere.

  5. #5
    Originariamente inviato da tornu
    ...
    Riesco a popolare la Tabella_A con i dati selezionati nella Tabella_B quello che non riesco ad ottenere è inserire conteporaneamente anche i dati "fissi" nei campi campo1 e campo2.
    ...

    per i dati fissi... fissali!

    se è una INSERT

    INSERT INTO tabella (campofisso1, campofisso2, ...) VALUES ('AAA', 'BBB', ...)

    se è una UPDATE

    UPDATE tabella SET campofisso1='AAA', campofisso2='BBB', ...

    that easy!

  6. #6
    Utente di HTML.it L'avatar di tornu
    Registrato dal
    Jul 2001
    Messaggi
    63
    Originariamente inviato da optime
    per i dati fissi... fissali!

    se è una INSERT

    INSERT INTO tabella (campofisso1, campofisso2, ...) VALUES ('AAA', 'BBB', ...)

    se è una UPDATE

    UPDATE tabella SET campofisso1='AAA', campofisso2='BBB', ...

    that easy!
    Certo così è semplice, all'esempio che hai postato prova ad inserire c o n t e m p o r a n e a m e n t e anche i dati della SELECT prelevati dalla Tabella_B, praticamente
    codice:
    INSERT INTO tabella_A (campofisso1, campofisso2, campo3, campo4, campo5...)
    VALUES ('AAA', 'BBB', SELECT dati FROM Tabella_B WHERE campoX)
    I dati per i campi 3, 4 e 5 devono essere prelevati dalla SELECT nella Tabella_B.

    P.S.: Il codice non è sintatticamente corretto e solo per spiegarmi.
    Is not easy!

  7. #7
    1. quali sono i dati che prelevi dalla tabella B?
    2. dove debbono finire nella tabella A?
    3. ci sono relazioni tra tabella A e tabella B?

  8. #8
    Utente di HTML.it L'avatar di tornu
    Registrato dal
    Jul 2001
    Messaggi
    63
    1. I dati sono quelli che prelevo dalla Tabella_B tramite la SELECT ed un filtro, che nel mio caso e un range di dati che ottengo tramite BETWEEN (penso non sia un problema)

    2. Devono finire nei campi corrispondenti (Tabella_A.campo3 = Tabella_B.campo3)

    3. No, non ci sono relazioni dirette.

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da tornu
    Certo così è semplice, all'esempio che hai postato prova ad inserire c o n t e m p o r a n e a m e n t e anche i dati della SELECT prelevati dalla Tabella_B, praticamente
    codice:
    INSERT INTO tabella_A (campofisso1, campofisso2, campo3, campo4, campo5...)
    VALUES ('AAA', 'BBB', SELECT dati FROM Tabella_B WHERE campoX)
    I dati per i campi 3, 4 e 5 devono essere prelevati dalla SELECT nella Tabella_B.

    P.S.: Il codice non è sintatticamente corretto e solo per spiegarmi.
    Is not easy!
    codice:
    insert into tabella_a (campofisso1, campofisso2, campo3, campo4, campo5)
    select 'aaa','bbb',campo3, campo4, campo5 from tabella_b
    WHERE campoX BETWEEN 1 AND 10

  10. #10
    Ciao,

    per essere in linea con il nuovo regolamento va inserito nel titolo il nome della piattaforma, dato che il regolamento è entrato in vigore da poco provvedo direttamente io a correggerlo.

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.