Results 1 to 5 of 5

Thread: SQL Query halp pls

  1. #1
    Lieutenant Commander Warbarbie's Avatar
    Join Date
    Nov 2004
    Location
    Rome
    Posts
    16.296

    Default SQL Query halp pls

    Allora,

    il problema è il seguente:

    tabella A e tabella B
    le 2 tabelle si legano attraverso 2 campi( A.x=B.x e A.y=B.y)
    dovrei attraverso una query tirare fuori se possibile i dati nel seguente modo.

    Da A solo quei campo che rispettano la condizione di cui sopra, da B tutti i record anche se la condizione non viene rispettata.

    Voi che siete più informatici di me halp pls


  2. #2
    Tunnel's Avatar
    Join Date
    Mar 2004
    Location
    Location.
    Posts
    14.756

    Default

    Uhm ? si può fare un join basato su 2 campi anzichè su 1 ? o_0

    io sapevo


    SELECT TabellaA.Colonna1,TabellaA.Colonna2,TabellaA.Colon nan,TabellaB.Colonna1,TabellaB.Colonna2,etc
    FROM TabellaA
    INNER JOIN TabellaB
    ON TabellaA.Colonna1=TabellaB.Colonna1
    where TabellaA.Colonna1 in ( condizione )

    Uhm, ho visto ora il discorso del non A, devi usare un right join
    Last edited by Tunnel; 17th February 2012 at 13:17.
    on Camelot Unchained (alpha):
    Nichodemus <GildaDiVecchieGlorieInPensione> - LaClasseCheCura - ServerName [soon]
    PG dei giochi vari in spoiler
    Spoiler


  3. #3
    Lieutenant Commander Warbarbie's Avatar
    Join Date
    Nov 2004
    Location
    Rome
    Posts
    16.296

    Default

    Boh penso di si, la chiave è un id sequenziale e l'anno di riferimento, ogni anno l'id riparte da zero, quindi la chiave è la combo dei 2


  4. #4
    Lieutenant Commander Mez's Avatar
    Join Date
    Sep 2003
    Location
    Milano
    Posts
    6.607

    Default

    ma se relazioni con l'istruzione INNER JOIN ?

  5. #5
    Master Chief Petty Officer Rise-the-Sky's Avatar
    Join Date
    Sep 2004
    Posts
    2.485

    Default

    Puoi usare right join, left join oppure una union di 2 subquery.

    Cmq si un join accetta anche condizioni composite.

    Quindi la query viene

    Select a.*, b.*
    From tabellaB as b
    Left Join tabellaA as a on (a.anno=b.anno and a.id = b.id)

    oppure si usa un right invertendo tutto. In generale le right join si usano poco.

    la union verrebbe


    Select b.*,
    a.*
    From tabellaA as a,
    tabellaB as b
    Where a.anno = b.anno
    And a.id +b.id
    Union
    Select b.*,
    null x ogni campo di a
    From tabellaB as b,
    tabellaA as a
    WHERE not (a.anno = b.anno
    And a.id +b.id)
    spamm is life.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 54.72 Kb. compressed to 46.38 Kb. by saving 8.34 Kb. (15.25%)]