Rinominare tabella sql dopo join di due precedenti

Pubblicità

Invictus_24

Nuovo Utente
Messaggi
22
Reazioni
2
Punteggio
25
Buon pomeriggio a tutti! :luxhello:
c'è qualcuno che sa dirmi se in sql posso dare un nome ad una tabella ottenuta precedentemente dal join di altre due (sempre che si possa fare) ?
 
Ultima modifica da un moderatore:
certamente, mi spiego meglio;
premetto che le viste purtroppo non sono incluse nel mio programma di studio, perciò se riuscissi a capire come dargli un alias sarebbe decisamente meglio.
praticamente ho una tabella, venuta fuori da un join ,in cui devo estrarre il nome dei clienti che hanno acquistato solo una marca di auto dopo un certo anno (possono aver acquistato anche più auto dopo l'anno in questione);
la mia idea era di unire la tabella che ho(ottenuta precedentemente con un join) con una sua copia.. solo che non so come fare
avvisatemi se il forum su cui sto scrivendo non è adatto a questo tipo di argomenti:ok:
 
Facendo riferimento al codice sotto, crei un alias per la tabella2 che sarebbe tabella3. Quindi quando userai il nome tabella3 nella tua query, farai riferimento alla tabella2

SQL:
Select tabella1.campo1
from tabella1 inner join tabella2 tabella3 on tabella1.id=tabella3.id
where tabella3.campo = 'qualcosa'
 
ok.. però il mio problema è un altro, forse non mi sono ben spiegato;
la tabella in questione è stata già ottenuta precedentemente , nella query, tramite una inner join, adesso avrei bisogno di una sua copia, posso rinominarla con un alias in qualche modo?( se si come posso fare?)
 
Supponiamo che la query che fa la join sia:

Codice:
SELECT
    *
FROM
    tabella1 a
        INNER JOIN
    tabella2 b ON a.ID = b.ID

Ora tu potresti riutilizzarla così:

Codice:
SELECT
    *
FROM
    tabella3 c
        INNER JOIN
    (SELECT    *
    FROM
        tabella1 a
            INNER JOIN
    tabella2 b ON a.ID = b.ID) AS join ON c.ID = join.idEsterno

Come vedi sto utilizzando la tua Query con JOIN come fosse una tabella che si chiama join.

Se vuoi qualcosa di più sintetico devi necessariamente usare una vista.
 
va bene @Tidus88 :sisi: ,fin qui ci sono; adesso la tabella che tu hai rinominato con l'alias join , potrei unirla direttamente con una sua copia anziché con la tabella3 ?
 
Se intendi questo:
Codice:
SELECT
    *
FROM
    (SELECT    *
    FROM
        tabella1 a
            INNER JOIN
    tabella2 b ON a.ID = b.ID) AS join
        INNER JOIN
    join ON join.id1 = join.id2

No, non si può fare.

Anzitutto il motore SQL ti direbbe che non esiste una tabella chiamata join nel database.
Inoltre non saprebbe a quale 'join' riferirsi nel risolvere l'alias della condizione di ON
 
Se intendi questo:
Codice:
SELECT
    *
FROM
    (SELECT    *
    FROM
        tabella1 a
            INNER JOIN
    tabella2 b ON a.ID = b.ID) AS join
        INNER JOIN
    join ON join.id1 = join.id2

No, non si può fare.

Anzitutto il motore SQL ti direbbe che non esiste una tabella chiamata join nel database.
Inoltre non saprebbe a quale 'join' riferirsi nel risolvere l'alias della condizione di ON
giustissimo, ci ho pensato ancora un pò dopo avertelo chiesto e mi era venuto un dubbio del genere :patpat:
--- i due messaggi sono stati uniti ---
grazie mille a tutti
 
Supponiamo che la query che fa la join sia:

Codice:
SELECT
    *
FROM
    tabella1 a
        INNER JOIN
    tabella2 b ON a.ID = b.ID

Ora tu potresti riutilizzarla così:

Codice:
SELECT
    *
FROM
   ( tabella3 c
        INNER JOIN
    (SELECT    *
    FROM
        tabella1 a
            INNER JOIN
    tabella2 b ON a.ID = b.ID) AS join ON c.ID = join.idEsterno)   as w )

Come vedi sto utilizzando la tua Query con JOIN come fosse una tabella che si chiama join.

Se vuoi qualcosa di più sintetico devi necessariamente usare una vista.
@Tidus88 un'ultima curiosità se mi permetti, dopo aver scritto questo pezzo di codice, potrei ancora rinominare tutto quello che ho ottenuto dai due join in questo modo?(guarda codice)
 
Sì, in linea di massima è possibile, fai attenzione ai possibili casi di ambiguità tra i nomi dei campi.
 
Pubblicità
Pubblicità
Indietro
Top