Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB.NET] Query con JOIN senza tabelle

    Faccio una SELECT su una tabella e i valori che mi vengono restituiti li metto in una tabella tmp1. Poi faccio un altra SELECT ed i valori che mi vengono restituiti li metto in una tabella tmp2. Dopodiché faccio una JOIN su tmp1 e tmp2

    codice:
    "SELECT tmp1.campo1, tmp2.campo2 FROM tmp1 LEFT JOIN tmp2 ON (tmp1.campo1= tmp2.campo2)"
    è possibile fare un'unica query che mi faccia la JOIN tra le due SELECT in modo da evitarmi la INSERT? Dovrebbe essere una cosa del genere:

    codice:
    "SELECT tmp1.campo1, tmp2.campo2 FROM (SELECT ....)LEFT JOIN (SELECT ....)ON (tmp1.campo1= tmp2.campo2)"
    ma poi cosa metto al posto di tmp1.campo1= tmp2.campo2 ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    53
    ciao, allora fammi capire un attimo.

    Tu hai una tabella TABELLA1, e TABELLA2.

    Tu vuoi fare una join tra queste due tabelle.

    Ma per come hai impostato tu fai una prima select su TABELLA1 e il risultato lo inserisci in TEMP1, e stessa cosa per TABELLA2 il cui risultato lo poni in TEMP2. O Sbaglio?

    Scusa, ma non puoi fare direttamente una join tra TABELLA1 E TABELLA2?

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: [VB.NET] Query con JOIN senza tabelle

    Originariamente inviato da mardok30
    Faccio una SELECT su una tabella e i valori che mi vengono restituiti li metto in una tabella tmp1. Poi faccio un altra SELECT ed i valori che mi vengono restituiti li metto in una tabella tmp2. Dopodiché faccio una JOIN su tmp1 e tmp2

    codice:
    "SELECT tmp1.campo1, tmp2.campo2 FROM tmp1 LEFT JOIN tmp2 ON (tmp1.campo1= tmp2.campo2)"
    è possibile fare un'unica query che mi faccia la JOIN tra le due SELECT in modo da evitarmi la INSERT? Dovrebbe essere una cosa del genere:

    codice:
    "SELECT tmp1.campo1, tmp2.campo2 FROM (SELECT ....)LEFT JOIN (SELECT ....)ON (tmp1.campo1= tmp2.campo2)"
    ma poi cosa metto al posto di tmp1.campo1= tmp2.campo2 ?
    A parte il titolo sbagliato (Query con JOIN senza tabelle è un non senso)
    e che invece avrebbe dovute essere qualcosa del genere
    Query con JOIN senza usare tabelle di appoggio

    Se non mostri le 2 select... into che stai usando è un po' dura capire cosa ti serve.
    E per una miglior comprensione, devi spiegare anche lo scenario, i campi, le tabelle dovrebbero essere reali, non 'virtuali'.
    Se riempi il codice di temp1.campo1, temp2.campo2, .... poi diventa facile confondersi...
    per cui è meglio usare i nomi reali.

    Infine il database usato.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    53
    Forse vuoi fare qualcosa del genere

    TABELLA1: ID,CAMPO1,CAMPO2,CAMPO3
    TABELLA2: ID, CAMPOA, CAMPOB,CAMPOC,CAMPOD

    RELAZIONE CAMPO1 ---CAMPOA

    SELECT Tabella1.Campo1,Tabella1.Campo2,Tabella2.CampoA,Ta bella2.CampoC FROM TABELLA1
    LEFT OUTER JOIN TABELLA2
    ON (Tabella1.Campo1 = Tabella2.CampoA);


    --Selezionando così non tutti i campi delle tabelle

  5. #5
    ciao, allora fammi capire un attimo.

    Tu hai una tabella TABELLA1, e TABELLA2.

    Tu vuoi fare una join tra queste due tabelle.

    Ma per come hai impostato tu fai una prima select su TABELLA1 e il risultato lo inserisci in TEMP1, e stessa cosa per TABELLA2 il cui risultato lo poni in TEMP2. O Sbaglio?

    Scusa, ma non puoi fare direttamente una join tra TABELLA1 E TABELLA2?
    Io ho una tabella sulla quale faccio due SELECT differenti e che mi popolano due tabelle(che ho creato per fare la JOIN). Dopodiché faccio la JOIN sulle due tabelle temp e vorrei ottenere i record delle due tabelle che abbiano "dataesame" e "codiceesame" uguali.
    Il metodo attuale funziona ma, in quanto a prestazioni...perciò pensavo di creare un'unica query. Sto facendo delle altre prove, ma comunque(forse)ho risolto con il metodo che avevo in mente sin dall'inizio, cioè fare la JOIN su due SELECT e non su due tabelle(in modo che mi sono risparmiato due SELECT e due INSERT e anche due DELETE per ripulire le tabelle temp).
    Database ACCESS
    A parte il titolo sbagliato (Query con JOIN senza tabelle è un non senso)
    e che invece avrebbe dovute essere qualcosa del genere
    Query con JOIN senza usare tabelle di appoggio
    Sempre quella vena polemica eh?
    Ciao e grazie

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da mardok30

    Database ACCESS

    Sempre quella vena polemica eh?
    Ciao e grazie
    Se dirti dove sbagli lo ritieni polemico non so cosa farci, ciò non toglie il fatto che quel titolo è sbagliato.
    Inoltre, se volessi essere polemico, ti direi che non hai risposto alla domanda che ti ho fatto per cercare di aiutarti a risolvere il TUO problema.

    Vista la TUA reazione polemica nei miei confronti, intuisco che tu non voglia il mio aiuto, per cui lascio agli altri il compito di aiutarti.

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    crea due viste con ciò che ti serve e poi fai una join tra le 2 viste così create.. poi cancelli le viste..

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    53
    scusate ma la mia proposta non va bene?

  9. #9
    scusate ma la mia proposta non va bene?
    Certo che può andare bene, solo che col tuo metodo devi fare:
    Due DELETE (per ripulire tabella1 e tabella2)
    Due INSERT (per popolare tabella1 e tabella2)
    Due SELECT (da utilizzare per la JOIN)
    il che rallenta di parecchio tutte le operazioni, perciò chiedevo se si potesse inserire tutto in un unica query(senza delle tabelle reali su cui appoggiarsi).

    crea due viste con ciò che ti serve e poi fai una join tra le 2 viste così create.. poi cancelli le viste..
    Con ACCESS si può fare?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    53
    scusa perché devi cancellare tabella1 e tabella2??

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.