Aiuto per query SQL insert e update per 2 tabelle

di il
16 risposte

Aiuto per query SQL insert e update per 2 tabelle

Salve a tutti, mi servirebbe un'aiuto. Sono inesperto in SQL e devo svolgere un'esercizio.
ho 2 tabelle, la prima si chiama 'LocalizationFrontEndItem' la seconda invece 'de',

LocalizationFrontEndItem:


de


devo inserire tutti dati di de all'interno di LocalizationFrontEndItem con i seguenti criteri:
1)Se la tabella 'de' ha in comune LocalizationFrontEndKey e il LanguageCode con 'LocalizationFrontEndItem' devo fare un'update di tutti gli elementi che appunto hanno questi due parametri in comune
2)Se invece non le hanno in comune devo fare un'insert di tutti glie elementi che non hanno questi due parametri in comune.

io non so proprio da dove iniziare.
grazie in anticipo

16 Risposte

  • Re: Aiuto per query SQL insert e update per 2 tabelle

    A parte l'evidente errore di logica del punto due: manca una negazione.
    Non dici se devi scrivere:
    a) una query singola
    b) due query
    c) una stored procedure

    A seconda del motore SQL scelto ci sono differenze ENORMI: in fondo è uno standard
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    Una query singola. si hai ragione ho corretto il punto 2, l'insert va fatto degli elementi con cui non trovare le 2 chiavi in comune
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    nicolap ha scritto:


    A seconda del motore SQL scelto ci sono differenze ENORMI: in fondo è uno standard
    Leggi con maggior attenzione: quella era una DOMANDA!
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    Hai ragione . SQL Server Management Studio
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    nicolap ha scritto:


    nicolap ha scritto:


    A seconda del motore SQL scelto ci sono differenze ENORMI: in fondo è uno standard
    Leggi con maggior attenzione: quella era una DOMANDA!
    Questa è la sezione SQL Server del forum ...
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    @oregon: ops, scusa! Troppe finestre aperte e scarsa attenzione

    Io per cominciare farei due query, poi quando queste funzionano si passa a qualcosa di più complicato, se serve.
    1) Se la tabella 'de' ha in comune LocalizationFrontEndKey e il LanguageCode con 'LocalizationFrontEndItem' devo fare un'update di tutti gli elementi che appunto hanno questi due parametri in comune
    La prima cosa da fare è di descrivere in maniera esaustiva il problema, usando i termini corretti: questo porta direttamente a tradurre per il nostro linguaggio informatico. In particolare ho evidenziato i termini significativi.
    In questo caso dovrai fare un UPDATE di una tabella, usando la condizione introdotta dal SE. Può sembrarti banale ma questo modo di procedere è dovuto al fatto che vuoi scrivere/tradurre in linguaggio informatico una cosa espressa in linguaggio umano. Se cerchi di usare dei termini comuni sarai avantaggiato.

    Questa potrebbe essere la prima query:
    UPDATE LocalizationFrontEndItem
    SET LocalizationFrontEndItem.Value = de.Value
    WHERE 
        LocalizationFrontEndItem.LocalizationFrontEndKey = de.LocalizationFrontEndKey
      AND 
        LocalizationFrontEndItem.LanguageCode = de.LanguageCode
    
    Ovviamente l'indentazione che ho usato serve solo per leggere meglio.

    Prima di procedere, sentiamo cosa ne pensi.
    N
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    nicolap ha scritto:


    @oregon: ops, scusa! Troppe finestre aperte e scarsa attenzione
    Può capitare a tutti ...
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    nicolap ha scritto:


    @oregon: ops, scusa! Troppe finestre aperte e scarsa attenzione

    Io per cominciare farei due query, poi quando queste funzionano si passa a qualcosa di più complicato, se serve.
    1) Se la tabella 'de' ha in comune LocalizationFrontEndKey e il LanguageCode con 'LocalizationFrontEndItem' devo fare un'update di tutti gli elementi che appunto hanno questi due parametri in comune
    La prima cosa da fare è di descrivere in maniera esaustiva il problema, usando i termini corretti: questo porta direttamente a tradurre per il nostro linguaggio informatico. In particolare ho evidenziato i termini significativi.
    In questo caso dovrai fare un UPDATE di una tabella, usando la condizione introdotta dal SE. Può sembrarti banale ma questo modo di procedere è dovuto al fatto che vuoi scrivere/tradurre in linguaggio informatico una cosa espressa in linguaggio umano. Se cerchi di usare dei termini comuni sarai avantaggiato.

    Questa potrebbe essere la prima query:
    UPDATE LocalizationFrontEndItem
    SET LocalizationFrontEndItem.Value = de.Value
    WHERE 
        LocalizationFrontEndItem.LocalizationFrontEndKey = de.LocalizationFrontEndKey
      AND 
        LocalizationFrontEndItem.LanguageCode = de.LanguageCode
    
    Ovviamente l'indentazione che ho usato serve solo per leggere meglio.

    Prima di procedere, sentiamo cosa ne pensi.
    N
    ok perfetto grazie della risposta esaustiva. Il primo punto praticamente è questo ma se non ci sono?
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    niccoicco9 ha scritto:


    ok perfetto il primo punto praticamente è questo ma se non ci sono?
    Beh, non vorrai tutta la pappa pronta! Va' avanti, noi ti aiutiamo...
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    INSERT INTO LocalizationFrontEndItem
    SELECT  LocalizationFrontEndItem.LocalizationFrontEndKey, LanguageCode, LocalizationFrontEndItem.Value,
    FROM de
    WHERE....
    
    può andare bene come partenza??
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    Mi pare di si. È un po' che non uso MS SQL ma altri e confondo i dettagli ma sostanza è quella.

    Però un errorino c'è: SELECT tabella.campo FROM altratabella...
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    INSERT INTO LocalizationFrontEndItem
    		SELECT LocalizationFrontEndKey, LanguageCode, Value
    		FROM de WHERE  .... 
    
    non so cosa mettere nel where per fare la verifica
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    niccoicco9 ha scritto:


    ...
    Una query singola.
    ...

    Anche sql server supporta MERGE
  • Re: Aiuto per query SQL insert e update per 2 tabelle

    niccoicco9 ha scritto:


    INSERT INTO LocalizationFrontEndItem
    		SELECT LocalizationFrontEndKey, LanguageCode, Value
    		FROM de WHERE  .... 
    
    non so cosa mettere nel where per fare la verifica
    Prova: prima scrivi in italiano qual'è la condizione esatta, poi prova a tradurre in SQL!
Devi accedere o registrarti per scrivere nel forum
16 risposte