Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    aiuto con una query tre tabelle, join

    salve ragazzi, ho tre tabelle

    comuni (cod_comune,nome_comune,cod_provincia)
    province (cod_provincia,nome_provincia,cod_regione)
    regioni (cod_regione,nome_regione)

    vorrei ottenere tutti questi campi a partire da un codice del comune.

    SELECT
    c.cod_comune,
    c.nome_comune,
    c.cod_provincia,
    p.cod_provincia,
    p.nome_provincia,
    p.cod_regione,
    r.cod_regione,
    r.nome_regione
    FROM
    comuni AS c,
    province AS p,
    regioni AS r
    WHERE
    ...

    AND c.cod_comune='032'

    grazie ragazzi!
    si vivono molte vite e si muore una volta sola

  2. #2
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    SELECT
    c.cod_comune,
    c.nome_comune,
    c.cod_provincia,
    p.cod_provincia,
    p.nome_provincia,
    p.cod_regione,
    r.cod_regione,
    r.nome_regione
    FROM comuni AS c left join province AS p on c.cod_provincia=p.cod_provincia left join regioni AS r on p.cod_regione=r.cod_regione WHERE c.cod_comune='032'
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  3. #3
    p.cod_provincia,
    p.nome_provincia,
    p.cod_regione,
    r.cod_regione,
    r.nome_regione

    me li restituisce vuoti
    si vivono molte vite e si muore una volta sola

  4. #4
    ho scoperto che al posto di p.cod_provincia,
    devo scrivere province.cod_provincia.

    in sostanza non mi utilizza l'alias definito nelle join.

    si puo' evitare?
    si vivono molte vite e si muore una volta sola

  5. #5
    ehm...no. in questo modo (scrivendo il nome delle tabelle al posto degli alias) e togliendo il limit,
    mi ritrovo con il comune trovato e tutte le possibilità di regioni e province.
    si vivono molte vite e si muore una volta sola

  6. #6
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    [supersaibal]Originariamente inviato da dogeht
    ehm...no. in questo modo (scrivendo il nome delle tabelle al posto degli alias) e togliendo il limit,
    mi ritrovo con il comune trovato e tutte le possibilità di regioni e province. [/supersaibal]
    non ho capito bene, ma puoi fare

    SELECT
    cod_comune,
    nome_comune,
    cod_provincia,
    nome_provincia,
    cod_regione,
    nome_regione
    FROM comuni AS c left join province AS p on c.cod_provincia=p.cod_provincia left join regioni AS r on p.cod_regione=r.cod_regione WHERE c.cod_comune='032'

    senza alias e dovrebbe fungere
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

  7. #7
    senza alias non posso visto che il campo cod_provincia compare sia in regioni che in province.

    cmq, resta il problema che i campi che non appartengono alla tabella comuni me li restituisce vuoti.

    sarà il tipo di join? ne ho provate delle altre ma niente...

    il comune (e i relativi campi) lo trova grazie alla where, ma la join non funziona per gli altri campi (anche se nond a nessun errore)
    si vivono molte vite e si muore una volta sola

  8. #8
    up
    si vivono molte vite e si muore una volta sola

  9. #9
    [supersaibal]Originariamente inviato da dogeht
    up [/supersaibal]
    Una cosa che dovresti fare e' l'alias dei campi con nome uguali, le tabelle vanno bene gli alias, ma servono solo ad evitare nomi lunghi. Invece l'alias delle colonne serve ad impedire che si sovrascrivano.

    es.:

    c.cod_provincia as c_provincia,
    p.cod_provincia as p_provincia,

    pero' un codice comune = 032 mi suona male. il codice e' composto da una lettera + 3 cifre. Es.


    ACQUAFONDATA FR LAZ
    CAP 03040
    Pref Tel. 0776
    Codice A032
    ISTAT 060001

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

  10. #10
    Utente di HTML.it L'avatar di eraclito
    Registrato dal
    May 2002
    Messaggi
    1,273
    [supersaibal]Originariamente inviato da dogeht
    senza alias non posso visto che il campo cod_provincia compare sia in regioni che in province.
    [/supersaibal]
    si, ma è uguale (almeno spero altrmenti non ho capito)

    [supersaibal]
    cmq, resta il problema che i campi che non appartengono alla tabella comuni me li restituisce vuoti.

    sarà il tipo di join? ne ho provate delle altre ma niente...

    il comune (e i relativi campi) lo trova grazie alla where, ma la join non funziona per gli altri campi (anche se nond a nessun errore) [/supersaibal]
    questo è strano, ma i cod sono chiavi primarie? (unici, non nulli ecc.)
    L'apprendere molte cose non insegna l'intelligenza
    Voglio avere dubbi più chiari

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.