• User

    concatenazione campi in più tabelle

    Ciao a tutti.

    Dispongo di un db fatto di 3 tabelle: nella prima, ho un elenco di adattatori in mio possesso (con relativo id e nome), nella seconda ho due colonne nella quale associo gli id degli adattatori con quelli dei compatibili. (Ad esempio l'adattatore con ID 1 è compatibile con quello con ID 5).
    Ora: come posso impostare una query, in modo che dandogli ID 1, mi scarichi tutti gli id compatibili e vada a pescarsi nella prima tabella i relativi nomi?

    Grazie


  • User Attivo

    nella terza tabella cosa c'è invece?


  • User

    Ciao,
    prova a vedere se può esserti di aiuto:

    Ipotizzando le tabelle:

    [TABLE="width: 128"]

    [TD="colspan: 2"]TB_ADATTATORI[/TD]
    [/TR]

    [TD]ID_ADA[/TD]
    [TD]NOME[/TD]
    [/TR]

    [TD]1[/TD]
    [TD]ADA_1[/TD]
    [/TR]

    [TD][/TD]
    [TD][/TD]
    [/TR]

    [TD="colspan: 2"]TB_LINK_ADATT_COMPATIBILI[/TD]
    [/TR]

    [TD]ID_ADA[/TD]
    [TD]ID_COMP[/TD]
    [/TR]

    [TD]1[/TD]
    [TD]11[/TD]
    [/TR]

    [TD]1[/TD]
    [TD]22[/TD]
    [/TR]

    [TD="colspan: 2"]TB_COMPATIBILI[/TD]
    [/TR]

    [TD]ID_COMP[/TD]
    [TD]NOME[/TD]
    [/TR]

    [TD]11[/TD]
    [TD]COMP_1[/TD]
    [/TR]

    [TD]22[/TD]
    [TD]COMP_2[/TD]
    [/TR]
    [/TABLE]

    la query che potresti utilizzare è:

    SELECT A.ID_ADA, A.NOME, C.ID_COMP, C.NOME
    FROM TB_ADATTATORI A, TB_LINK_ADATT_COMPATIBILI B, TB_COMPATIBILI C
    WHERE A.ID_ADA=B.ID_ADA
    AND B.ID_COMP=C.ID_COMP


  • User Attivo

    Occorre usare la funzione JOIN.

    Partendo dall'ipotesi di OsteriaORistorante dovrebbe essere:

    
    SELECT A.ID_ADA, A.NOME, C.ID_COMP, C.NOME
    FROM TB_ADATTATORI AS A
    JOIN TB_LINK_ADATT_COMPATIBILI AS B ON A.ID_ADA=B.ID_ADA
    JOIN TB_COMPATIBILI AS C ON B.ID_COMP=C.ID_COMP
    WHERE A.ID_ADA=1
    
    

    Da provare, comunque.