Se intendi dire il riferimento ai campi estratti equivale ad un SELECT * perche' chiedi tutti i campi di entrambe le tabelle.[supersaibal]Originariamente inviato da tommyxxx
sul manuale ho trovato una cosa del genere:
SELECT users.*, feedback.* FROM users, feedback WHERE feedback.data_appuntamento = $data_odierna
che dici?
Poi una volta tirati fuori i dati, dovrei mandare una mail all'agente di riferimento.
[/supersaibal]
Se intendi il tipo di INNER JOIN che fai tra le due tabelle allora questo non e' corretto perche' manca la relazione che unisce i record delle due tabelle.
Non entro nel merito della e-mail perche' siamo gia' piu' nel complicato. Stiamo nella query:
Se hai due campi con nome uguale nelle tabelle e ti servono entrambi devi mettere un alias. Significa:
SELECT tab1.pippo as pippo1, tab2.pippo as pippo2
in questo modo troverai i dati di entrambe i campi rispettivamente in pippo1 e pippo2.
Poi associare due tabelle nell'estrazione dei dati significa prendere i dati di un record dalla tab1 solo dove il valore di un campo specifico della tab1 corrisponde ad un valore identico di un campo specifico della tab2.
es.:
ovviamente questo e' un esempio. Quindi la tua query nel primo post non era errata, ma cercavi dei dati che non estraevi, ed alcuni di questi si sovrascrivevano. Questo era e rimane quel che ti ho detto.codice:SELECT tab1.pippo as pippo1, tab2.pippo as pippo2 from tabella1 as tab1, tabella2 as tab2 where tab1.id = tab2.id_tab1 AND tab1.data_odierna = CURDATE()
Se vuoi semplificarti la vita, non mettere mai nomi di campo uguali su tabelle che dovranno essere unite. Ragiona in termini di vedere come una unica grande tabella, e quindi con campi univoci, tutte le tabelle che dovranno essere unite da una JOIN. In quel modo puoi fare un select * senza dover elencare tutta una serie di valori e rispettivi alias.codice:SELECT * FROM users as u LEFT JOIN feedback as f ON u.tabid = f.agente WHERE f.data_appuntamento='".$data_odierna."'";
![]()

[/supersaibal]
Rispondi quotando