Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    inner join con 3 tabelle

    ciao a tutti, sarebbe possibile effettuare una inner join su tra tabelle di cui le prime due hanno una chiave primaria in comune e la seconda e la terza hanno una seconda chiave primaria in comune?

  2. #2

    Re: inner join con 3 tabelle

    Originariamente inviato da ratlook
    ciao a tutti, sarebbe possibile effettuare una inner join su tra tabelle di cui le prime due hanno una chiave primaria in comune e la seconda e la terza hanno una seconda chiave primaria in comune?
    certo che si. ne e' anzi una condizione essenziale che ci siano questi riferimenti per costruire una JOIN.

    Anche se, cosi' come hai scritto, non e' possibile che la seconda tabella abbia 2 chiavi primarie.

    tab1.id_PK = tab2.id_PK e tab2.id_altro = tab3.id_PK

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    in pratica nella prima tabella ci sono i campi:
    - id
    - id prodotto
    - nome
    - descrizione

    nella seconda tabella ci sono i campi
    - id (che corrisponde all'id prodotto della prima tabella)
    - url immagine
    - disponibilità
    - peso prodotto
    - id categoria

    nella terza tabella ci sono i campi
    - id (che corrisponde all'id categoria della seconda tabella)
    - nome categoria
    - descrizione categoria

    io dovrei fare una query in cui per ogni prodotto ho id prodotto, nome, descrizione, url immagine, disponibilità, peso prodotto, nome categoria e descrizione categoria

    pensi sia fattibile o devo gestirlo attraverso due inner join distinte?

  4. #4
    certo che e' fattibile.

    codice:
    select *
    from tab1
    inner join tab2 ON tab1.id_prodotto = tab2.id
    inner join tab3 ON tab2.id.categoria = tab3.id
    E la stessa cosa come fare:

    codice:
    select *
    from tab1, tab2, tab3
    where
    tab1.id_prodotto = tab2.id AND tab2.id.categoria = tab3.id
    sono solo due differenti forme per eseguire una JOIN. La prima e' da preferire perche' piu' chiaramente leggibile e modificabile.

    Ma siamo nel campo delle query sql e non nel php. Andrebbe nel forum database.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Originariamente inviato da piero.mac
    certo che e' fattibile.

    codice:
    select *
    from tab1
    inner join tab2 ON tab1.id_prodotto = tab2.id
    inner join tab3 ON tab2.id.categoria = tab3.id
    E la stessa cosa come fare:

    codice:
    select *
    from tab1, tab2, tab3
    where
    tab1.id_prodotto = tab2.id AND tab2.id.categoria = tab3.id
    sono solo due differenti forme per eseguire una JOIN. La prima e' da preferire perche' piu' chiaramente leggibile e modificabile.
    ok grazie, nel pom ci smanetto e vediamo che salta fuori!

    Originariamente inviato da piero.mac
    Ma siamo nel campo delle query sql e non nel php. Andrebbe nel forum database.
    ops... chiedo scusa ai mod!

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.