SQL Select from e comparazione.

  • Creatore Discussione Creatore Discussione IImanuII
  • Data di inizio Data di inizio

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Arisalve a tutti, so veramente poco di query tuttavia avrei l'esigenza di fare alcune select da un db per estrarne una tabella.

Vi posto il problema.

Ho db (ma va?) in cui ci sono 2 tabelle: user_profiles e users

Ora da users sono riuscito ad estrarre (seguendo https://www.mrw.it/sql/ref/select_393.html) il nome utente, il nome e cognome, la data di registrazione e la mail. Così:

Codice:
SELECT name AS Nome, username AS User, email AS Email, registerDate AS Registrato
FROM users

1. La query funziona. Tuttavia volevo chiedere una cosa, la referenza AS: dopo scrivo il nome da visualizzare, ma se tale nome è composto da due parole? Es "name AS Nome" se lo volessi fa diventare "name AS Nome e cognome" mi da un errore di sintassi ho provato anche così "name AS (Nome e cognome)," ma nulla come è evidente ignoro una sintassi più complessa xD me lo potete spiegare?

2. nella seconda tabella user_profiles ci sono indirizzi e numeri di telefono. la tabella è strutturata così
tab.png

EDIT: volevo dire che l'ordering è sempre lo stesso cioè 1 per l'indirizzo, 2 per la città e 3 per il telefono

Dove l'user id corrisponde all'id dell'utente, profile_key al campo (es indirizzo, numero di tel etc...), profile_value ovviamente al valore.

Ora mi chiedevo se si potesse realizzare una quesy che estrapoli dalle 2 tabelle i valoi che ho estratto già con la query che ho postato più l'indirizzo e il numero di telefono che si trovano nella seconda tabella. Insomma unire i dati dell'una e dell'altra tabella in modo da avere sulla stessa riga i dati corrispondenti a nome, nome utente, mail, città, indirizzo, numero di telefono.

T.T ho cercato in rete ma con le keyword "refernza sql FROM" non ho trovato granchè una manina? =)
 
1.

Si lo puoi fare rendendola una stringa

Codice:
SELECT name AS 'Nome e cognome' FROM tabella.......

2.

Non ho capito con che logica hai strutturato quella tabella, perché non hai memorizzato un profilo per ogni utente con i corrispondenti valori?

Sennò potevi fare una cosa simile
Codice:
//dove 1 è l'id che vuoi recuperare
SELECT * FROM user_profiles,users WHERE user_profiles.user_id = 1 AND users.id = 1
 
1.

Si lo puoi fare rendendola una stringa

Codice:
SELECT name AS 'Nome e cognome' FROM tabella.......

2.

Non ho capito con che logica hai strutturato quella tabella, perché non hai memorizzato un profilo per ogni utente con i corrispondenti valori?

Sennò potevi fare una cosa simile
Codice:
//dove 1 è l'id che vuoi recuperare
SELECT * FROM user_profiles,users WHERE user_profiles.user_id = 1 AND users.id = 1

Grazie per la risposta ^^

La tabella non l'ho strutturata io è questo il problema xD E' generata dal cms joomla. Per fare quello che volevo non esisteva un componente adatto così mi sono ingegnato xD

Provo e vedo se funziona :P


EDIT
No purtroppo non va bene.

Mi spiego meglio.

All'interno del db ho 2 tabelle. Devo far convergere le informazioni delle 2 tabelle in un unica soluzione.

Cominciando per gradi:
Ho ricavato le informazioni che mi servivano dalla prima tabella "users" con la query che ho postato prima.

Ora vorrei integrare nelle informazioni ricavate da users le informazioni aggiuntive che si trovano nella tabella user_profiles. Tale tabella è rappresentata dall'immagine che ti ho postato.

Con la query che mi hai suggerito dà quest'errore Unknown column 'user_profiles.user_id' in 'where clause' [1054]
 
Ultima modifica:
Grazie per la risposta ^^

La tabella non l'ho strutturata io è questo il problema xD E' generata dal cms joomla. Per fare quello che volevo non esisteva un componente adatto così mi sono ingegnato xD

Provo e vedo se funziona :P


EDIT
No purtroppo non va bene.
Se si tratta di joomla prova a chiedere nel forum apposito, magari esiste qualche componente che ti fa la stessa cosa con poche modifiche

Con la query che mi hai suggerito dà quest'errore Unknown column 'user_profiles.user_id' in 'where clause' [1054]
è sbagliato il nome della colonna correggilo oppure aggiusta la condizione come vuoi te, comunque ribadisco il consiglio scritto sopra
 
Ultima modifica:
Se si tratta di joomla prova a chiedere nel forum apposito, magari esiste qualche componente che ti fa la stessa cosa con poche modifiche


è sbagliato il nome della colonna correggilo oppure aggiusta la condizione come vuoi te, comunque ribadisco il consiglio scritto sopra
Ti ringrazio del consiglio. Ho giá provato a rivolgermi alla community di joomla ma purtroppo non esiste una soluzione "leggera" nè tantomeno una soluzione che mi consente di non metter mano al core di joomla (le modifiche con gli aggiornamenti vanno perse).

L'unica via dunque è questa T.T

Dopo al pc tento nuovamente l'ordinamento dei dati con la query. In caso di problemi posso continuare a postare qui?
 
Domanda:
Codice:
WHERE user_profiles.user_id = 1 AND users.id = 1

Perchè hai messo il punto cosa vuol dire?
 

Discussioni simili