Visualizzazione dei risultati da 1 a 5 su 5

Discussione: alias ad un join

  1. #1

    alias ad un join

    in un interrogazione ho bisogno di interagire con il join tra 2 tabelle ed una terza tabella
    posso dare un nome al join?
    provo a rendere più chiaro cosa voglio fare

    select *
    from (maternità natural join paternità) as genitori , paternità P

    si può fare una cosa del gene o devo mettere tutto nel where?
    grazie!

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Mai vista una cosa cosi ( ma non la escludo )

    che DB usi ??

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    23
    Ciao, secondo me dovresti fare così:

    Select *
    from (select *
    from tab_1 t1
    join tab_2 t2 on t1.campo = t2.campo) as tab_J
    join tab_3 on tab_j.campo = tab_3.campo

    F.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    select a.campoA, b.campoB, c.campoC from (tabellaA a inner join tabellaB b on a.chiaveA=b.chiaveB) inner join tabellaC c on a.chiave1A=c.chiave1C

    E comunque usare gli alias non e' indispensabile in questo caso
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    La prima cosa da ricordare è che la NATURAL JOIN presuppone che la JOIN tra le tabelle avvenga implicitamente per tutti i campi con gli stessi nomi presenti nelle varie tabelle coinvolte (oserei dire una join porcheria sconsigliabile sempre).
    Ovviamente sarebbe preferibile mettere in join le tabelle esplicitando i campi di relazione con delle INNER o LEFT JOIN.
    Nel tuo caso dovresti creare una sottoquery che mette in relazione Maternità con Paternità:
    SELECT * FROM maternità natural join paternità. La puoi quindi vedere come sottoquery e gli dal l'alias GENITORI quindi puoi andare in join tra questa e la terza tabella.

    Esempio:
    SELECT *
    FROM (SELECT * FROM Maternita NATURAL JOIN PATERNITA) AS GENITORI
    NATURAL JOIN T3

    ho usato una NATURAL anche per la JOIN con T3 anche se puoi usare quello che meglio credi INNER, LEFT, RIGHT, FULL, CROSS... a seconda dell'esigenza
    Ultima modifica di smartsql; 07-12-2013 a 22:05

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.