Visualizzazione dei risultati da 1 a 5 su 5

Discussione: mySql join

  1. #1

    mySql join

    Ciao a tutti, ho una domandina tecnica da sottoporvi.

    Mettiamo di avere due semplici tabelline:

    UTENTI
    ======
    id_utente [PK]
    username
    password
    data (indica la data in cui si è iscritto un utente)

    COMMENTI
    ========
    id_commento [PK]
    data (indica la data di immissione del commento)
    titolo
    testo
    id_utente [FK]

    e di voler eseguire la seguente join:

    "SELECT * FROM commenti c, utenti u
    WHERE c.id_utente = u.id_utente
    ORDER BY c.data DESC;"

    Una volta eseguita la query, recuperiamo i dati nel seguente modo:

    Codice PHP:
    while($row $result->fetch_assoc()){
      print(
    "Il risultato è: " $row["data"]);

    Vorrei sapere se vi è un modo per esplicitare direttamente nel codice PHP quale delle due colonne DATA si intende visualizzare. Ho tentato di indicare l'alias di tabella utilizzato nella query ma non funziona. E' proprio obbligatorio chiamare i due campi data con due nominativi differenti (es. data_utente e data_commento)?

    Grazie anticipatamente a chi mi risponderà




  2. #2
    codice:
    SELECT *,c.data as data_commento FROM commenti c, utenti u
    WHERE c.id_utente = u.id_utente
    ORDER BY c.data DESC
    Codice PHP:
    while($row $result->fetch_assoc()){
      print(
    "Il risultato è: " $row["data_commento"]);

    http://www.anobii.com/isalreadyinuse

  3. #3
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407

    Re: mySql join

    Originariamente inviato da psYko_maNtis
    Ciao a tutti, ho una domandina tecnica da sottoporvi.

    Mettiamo di avere due semplici tabelline:

    UTENTI
    ======
    id_utente [PK]
    username
    password
    data (indica la data in cui si è iscritto un utente)

    COMMENTI
    ========
    id_commento [PK]
    data (indica la data di immissione del commento)
    titolo
    testo
    id_utente [FK]

    e di voler eseguire la seguente join:

    "SELECT * FROM commenti c, utenti u
    WHERE c.id_utente = u.id_utente
    ORDER BY c.data DESC;"

    Una volta eseguita la query, recuperiamo i dati nel seguente modo:

    Codice PHP:
    while($row $result->fetch_assoc()){
      print(
    "Il risultato è: " $row["data"]);

    Vorrei sapere se vi è un modo per esplicitare direttamente nel codice PHP quale delle due colonne DATA si intende visualizzare. Ho tentato di indicare l'alias di tabella utilizzato nella query ma non funziona. E' proprio obbligatorio chiamare i due campi data con due nominativi differenti (es. data_utente e data_commento)?

    Grazie anticipatamente a chi mi risponderà



    l'unico modo credo sia
    SELECT utenti.data, utenti.username, commenti.titolo, ecc...

    anche se non capisco perchè non ti prende l'alias
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  4. #4

    Re: mySql join

    Originariamente inviato da psYko_maNtis

    Vorrei sapere se vi è un modo per esplicitare direttamente nel codice PHP quale delle due colonne DATA si intende visualizzare. Ho tentato di indicare l'alias di tabella utilizzato nella query ma non funziona. E' proprio obbligatorio chiamare i due campi data con due nominativi differenti (es. data_utente e data_commento)?

    Grazie anticipatamente a chi mi risponderà



    Non puoi chiamare due colonne con lo stesso nome in un result set se ti servono entrambi i valori.

    L'alias delle tabelle serve per comporre la select mentre il result set e' come fosse una tabella unica. L'ultima colonna trovata sovrascrive la prima che ha lo stesso nome. Quindi serve l'alias del campo e non quello della tabella.

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

  5. #5
    Grazie mille a tutti per le vostre delucidazioni, in effetti ho fatto un po' di confusione ma ora ci sono!

    Grazie ancora e buona giornata!


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.