Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    stampare valori da query con join e alias

    scusate davvero per il titolo..
    non sapevo davvero cosa scrivere..
    sto facendo una query in cui in sostanza vado a prendere con una join la città di nascita di un utente. fino a qui tutto bene.
    il cliente mi ha chiesto di mettere una seconda città, quella di residenza, che può essere diversa da quella di nascita...
    la chiamo con un altro nome nel db, ma la join diciamo che è "simile" e nella visualizzazione dei risultati, mi viene fuori ovviamente un solo valore, Questo perchè mi valorizza sempre il campo CITTA' nella tabella città e il nome del campo è sempre lo stesso..
    ho provato con gli alias, ma questi hanno effetto sulla query e non sulla stampa dei risultati.
    Quindi a questo punto non so nemmeno se è una questione di DB o di PHP..
    il DB è MySql..

    la query è più meno così..
    Codice PHP:
    SELECT FROM anagrafica LEFT JOIN citta AS c1 ON citta c1.id_citta
    LEFT JOIN citta 
    AS c2 ON citta c2.id_citta 
    grazie in anticipo a chi mi darà una mano.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    select * ,
    select nomecitta as cittanascita from citta where idcitta=A.idcittanascita ,
    select nomecitta as cittaresidenza from citta where idcitta=A.idcittaresidenza
    from anagrafica A

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    con la siffatta query non ci si sbatte con le join,
    devi ovviamente sistemare i nomi
    attento alle virgole, fondamentali per il funzionamento
    otterrai tutti i valori di anagrafica seguiti dal nome delle due citta
    ciao
    Marino

    ps con il messaggio separato dal codice non mi da errore ....

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ma io con le join ci DEVO sbattere..
    la parte di query che ho postato riguarda solo QUELLA PARTE della query, ma è più complicata di così..

    a meno che non decido che A PARTE faccio 2 query SOLO per la città.. se non riesco a risolvere farò così, ma mi sto scervellando e cercando altri esempi di persone che hanno avuto la mia stessa situazione.. ne ho trovati ma tutti si fermano alla query, e non vanno mai al PHP..

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    non ho capito cosa vuoi dire, la query è completa come l'hai chiesta
    ed ancora non capisco perché non posti l'intera query, chi ti risponde si basa su ciò che dici,
    se esprimi qualcosa di diverso dal reale è tempo perso per tutti

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    scusa, credevo fosse abbastanza superfluo metterla tutta, perchè la parte interessata quella era..
    ma ovviamente se me lo chiedi la metto..
    Codice PHP:
    SELECT FROM anagrafica LEFT JOIN tit_pro ON id_tit_pro titolo_pro LEFT JOIN citta AS c1 ON citta c1.id_cittaLEFT JOIN citta AS c2 ON citta c2.id_citta WHERE id_anagrafica $variabile 
    questa è quella semplice, perchè successivamente dovrò anche fare una ricerca su questi dati quindi le clausole saranno di più...
    grazie comunque per ora

  7. #7
    SELECT
    a.colonna1, ..., a.colonnaN,
    cn.colonna1, ..., cn.colonnaN,
    cr.colonna1, ..., cr.colonnaN
    FROM
    anagrafica a
    LEFT JOIN citta cn ON a.idcittanascita=cn.idcitta
    LEFT JOIN citta cr ON a.idcittaresidena=cr.idcitta

    ovviamente puoi mettere alias anche sulle colonne selezionate, questo dovrebbe facilitarti l'estrazione lato applicativo

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    quello che non capisco è: cn.idcitta e cr.idcitta sono 2 alias della stessa tabella per te?
    come faccio a cambiargli nome? (mi dirai, con gli alias.. )
    cioè in sostanza dovrei DARE UN NOME alla join per andare bene..

  9. #9
    Quote Originariamente inviata da telegio Visualizza il messaggio
    quello che non capisco è: cn.idcitta e cr.idcitta sono 2 alias della stessa tabella per te?
    non sono alias della stessa tabella *PER ME* - lo sono per il parser sql, che è quello che importa

    Quote Originariamente inviata da telegio Visualizza il messaggio
    come faccio a cambiargli nome? (mi dirai, con gli alias.. )
    cambiare nome a cosa?

    Quote Originariamente inviata da telegio Visualizza il messaggio
    cioè in sostanza dovrei DARE UN NOME alla join per andare bene..
    dare un nome alla JOIN? le JOIN non hanno nome! sono le tabelle e le colonne ad avere nome ed eventualmente alias

    esempio

    SELECT T1.Nome AS IlMioNome FROM Clienti AS T1

    IlMioNome è un alias per la colonna Nome
    T1 è un alias per la tabella Clienti

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    dare un nome alla JOIN? le JOIN non hanno nome! sono le tabelle e le colonne ad avere nome ed eventualmente alias
    ESATTO!!! quello che non capivo era che la query che avevi postato tu, era simile a quella che avevo messo io, con gli stessi risultati. cioè il nome della città era sempre uno solo in "stampa"..
    non avevo capito l'utilizzo degli alias che ora mi è chiaro.. diciamo che è APPENA APPENA PERFETTO..

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.