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

    [MYSQL] Problema join su stessa tabella e alias

    ciao, io vorrei fare due join sulla stessa tabella citta perche' nella tabella principale ho due riferimenti appunto alla tabella citta.
    Solo che non riesco a capire bene come funzionano i join e gli alias.
    ho fatto vari tentativi e solo il primo funziona:

    codice:
    SELECT *,CITTA1.CIT_NOME AS NOME1,CITTA2.CIT_NOME AS NOME2 FROM RUBRICA
    INNER JOIN CITTA AS CITTA1 ON RUB_ID_CITTA1 = CITTA1.CIT_ID
    INNER JOIN PROVINCE PROV1 ON CITTA1.CIT_ID_PROV = PROV1.PRO_ID
    LEFT JOIN CITTA AS CITTA2 ON RUB_ID_CITTA2 = CITTA2.CIT_ID
    LEFT JOIN PROVINCE PROV2 ON CITTA2.CIT_ID_PROV = PROV2.PRO_ID
    cosi se vado a stampare il campo NOMI1 e NOME2 funziona

    NOTA: il LEFT JOIN per la seconda lo uso perche' potrebbe essere un campo NULL.

    codice:
    SELECT * FROM RUBRICA
    INNER JOIN CITTA AS CITTA1 ON RUB_ID_CITTA1 = CITTA1.CIT_ID
    INNER JOIN PROVINCE AS PROV1 ON CITTA1.CIT_ID_PROV = PROV1.PRO_ID
    LEFT JOIN CITTA AS CITTA2 ON RUB_ID_CITTA2 = CITTA2.CIT_ID
    LEFT JOIN PROVINCE AS PROV2 ON CITTA2.CIT_ID_PROV = PROV2.PRO_ID
    Questa query funziona ma se stampo CITTA1.CIT_NOME o CITTA2.CIT_NOME non stampa nulla


    codice:
    SELECT * FROM RUBRICA, 
    CITTA AS CITTA1, CITTA AS CITTA2, 
    PROVINCE AS PROV1, PROVICE AS PROV2
    INNER JOIN CITTA1 ON RUB_ID_CITTA1 = CITTA1.CIT_ID
    INNER JOIN PROV1 ON CITTA1.CIT_ID_PROV = PROV1.PRO_ID
    LEFT JOIN CITTA2 ON RUB_ID_CITTA2 = CITTA2.CIT_ID
    LEFT JOIN PROV2 ON CITTA2.CIT_ID_PROV = PROV2.PRO_ID
    Infine quest'ultima query mi restituisce un errore:
    Error Not unique table/alias: 'CITTA1'

    Dato che il primo metodo funziona voi mi direte che cosa posti a fare. pero' io vorrei capire come fare per stampare i vari campi del join senza definire un alias per ogni singolo campo ma semplicemente uno per la tabella cosi da andare a richiamarlo con

    nomeAlias.nomeCampo

    e non

    nomeCampoAlias

    c'e' verso?

    grazie mille. ciao.

  2. #2

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.