Visualizzazione dei risultati da 1 a 8 su 8

Discussione: select join

  1. #1

    select join

    ciao a tutti, ho scritto questa select:

    $sql="SELECT * FROM utenti AS u, elenco AS e WHERE u.id_utente=e.id_utente ORDER BY u.nome ASC";

    la query funziona alla perfezione, ma ho un solo problema:

    in tutte e 2 le tabelle (utenti ed elenco) ho il campo "note".

    quando vado a stampare i dati recuperati dalla query, come faccio a distinguere il campo "note" della tabella "utenti" rispetto a quello della tabella "elenco" ?

    cos' come è scritta mi recupera solo il valore "note" della tabella elenco.

    grazie a tutti!!

    ciao!
    aquatimer2000

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Puoi fare un as sul campo che ti serve visualizzare es.: tabella1.note as note_utile

    Nell'array ritornato avrai $result['note_utile']

    Dovresti pero' dichiarare i campi da estrarre piuttosto che *
    La vita e' uno switch();

  3. #3
    che inserito nella mia query diventa ?
    aquatimer2000

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    $sql="SELECT * FROM utenti AS u, elenco AS e WHERE u.id_utente=e.id_utente ORDER BY u.nome ASC";

    Io le scrivo un po diversamente. di solito faccio(es):

    SELECT utenti.username, utenti.codicecanale as canale
    FROM userprofile
    JOIN utenti ON userprofile.fkUtente = utenti.idutente
    WHERE userprofile.gene_nome....

    alla fine mi trovo la chiave ['canale'] nell 'array


    Per abitudine ho sempre fatto cosi sinceramente
    La vita e' uno switch();

  5. #5
    emh... non c'ho capito tanto ..
    aquatimer2000

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    se le tabelle hanno lo stesso nome campo devi specificare nella select il campo e tabella interessata( nometabella.campo ) quindi:
    Codice PHP:
    SELECT utenti.notetutti gli altri campi ..FROM ......
    //qui avrai nell'array $risultato_query['note'] 
    se ti servono entrambi :
    Codice PHP:
    SELECT utenti.note as noteUtenti,  elenco.note as noteElenco, ..tutti gli altri campi .. FROM ......
    //qui avrai nell'array $risultato_query['noteUtenti'] - $risultato_query['noteElenco'] 
    La vita e' uno switch();

  7. #7
    la seconda soluzione prooposta è quasi perfetta:

    siccome tutti gli altri campi sono tanti, come posso utilizzare l'asterisco per evitare di doverli indicare tutti ?
    aquatimer2000

  8. #8
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    se nn sbaglio potresti al max fare

    select utenti.note as noteUtenti, elenchi.* (o al rovescio)

    In questo caso dovresti avere noteUtenti equivalente alla tabella utenti e poi la chiave originale "note" per la tabella elenchi (se e' quella con molti campi) . Se non va bene elencali tutti.
    La vita e' uno switch();

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.