Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    Ciao ragazzi...
    ho una tabella formata da 3 campi.

    1. ID
    2. nome azienda
    3. id azienda di riferimento

    Nel campo 3 c'è l'ID di un'azienda sempre contenuta nella tabella!!!

    Se volessi fare una ricerca per azienda di riferimento dovrei fare un Join della tabella con se stessa?
    E' possibile o ho detto un'eresia?

    Nel campo 3 ci sono solo ID, quindi numeri... invece nel form di ricerca scriverei il nome (o parte) dell'azienda di riferimento.

    Come si fa?

    Grazie.....

  2. #2
    Allora... mettiamo che la tabella che hai indicato si chiami "nome_aziende" e che l'altra collegata sia "aziende":

    nome_aziende
    ID
    nome_azienda
    IDAzienda

    aziende
    IDAzienda
    Azienda
    ... altri campi

    Ecco una select tra le due:

    SELECT nome_aziende.nome_azienda, aziende.azienda FROM nome_azienda INNER JOIN aziende ON nome_aziende.IDAzienda = aziende.IDAzienda WHERE aziende.Azienda='QUI_CI_METTI_IL_NOME_AZIENDA'

  3. #3
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    mmmmmmmmm.....

    te l'avevo detto ke la tabella è solo una, vero?
    e ke non esiste una seconda tabella?

    La tabella deve riferirsi a se stessa...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    43
    si chiama SELF JOIN o in italiano AUTO JOIN: fai così
    cut & paste nel query analyzer e provala
    ---------------------------------------------------
    use tempdb
    GO
    drop table AZIENDE
    create table AZIENDE(
    ID int IDENTITY,
    IDAzienda int null,
    nome_azienda char(1)
    )
    set nocount on
    insert into aziende values (null,'A')
    insert into aziende values (null,'B')
    insert into aziende values (1,'C')
    insert into aziende values (1,'D')
    insert into aziende values (2,'F')
    insert into aziende values (2,'G')
    GO
    SELECT a.nome_azienda , b.nome_azienda from AZIENDE a
    INNER JOIN AZIENDE b ON a.ID = b.IDAzienda
    ---------------------------------------------------

  5. #5
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    grazie pucci70, non pensavo si potesse fare, sei stato molto gentile...

  6. #6
    Casi molto utili in cui si utilizzano self-join sono ad esempio la ricerca dei superiori o sottoposti nella tabella del personale, si deve cercare solo in una tabella visto che i superiori e i sottoposti sono nella stessa tabella ed occorre legare le chiavi di ogni persona richiamandoli nella tabella stessa .
    Vano

  7. #7
    Utente di HTML.it L'avatar di kumm
    Registrato dal
    Jun 2000
    Messaggi
    190
    Ed infatti hai centrato il problema!

    Le aziende stanno in una relazione nonna-madre-figlia-nipote
    ..una specie di grafo ad albero (non bilanciato)...

    ...grazie mille per l'aiuto!

  8. #8
    Sei riuscito ad interrogarlo correttamente ora?
    Vano

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 © 2024 vBulletin Solutions, Inc. All rights reserved.