Joomla.it Forum

Non solo Joomla... => Sviluppo => : ArroWeb 31 Dec 2016, 19:47:55

: Join database con risultati multipli
: ArroWeb 31 Dec 2016, 19:47:55
  Salve avrei un problema sto creando un nuovo componente per joomla una specie di motore di ricerca ed ho riscontrato un problema effettuando una query al database spero che voi possiate aiutarmi.


Vi spiego ho creato 2 tabelle cosi:


TAB1
idtitlecity
1CasaMilano
2CasaRoma

TAB2
idid_tab1title
11Nuova
21Vecchia
31Bilocale
42Villa
52Villetta
62Monolocale

Con questa query:


:
<?php
$db 
JFactory::getDbo();       
$query $db->getQuery(true);
 
$query->select('*');
      
$query->from($db->quoteName('#__tab1') . ' AS a');
      
$query->join('LEFT'$db->quoteName('#__tab2') . ' AS b ON (' $db->quoteName('a.id') . ' = ' $db->quoteName('b.id_tab1') . ')');
           
$db->setQuery($query);       
$results $db->loadObjectList();
?>



quando carico la pagina il risultato è il seguente:


1. casa - milano - nuova
2. casa - milano - vecchia
3. casa - milano - bilocale
4. casa - roma - villa
5. casa - roma - villetta
6. casa - roma - monolocale


io vorrei invece ricevere questo risultato:


1. casa - milano - ( nuova, vecchia, bifocale )
2. casa - roma - ( villa, villetta, monolocale )


 
Come posso fare?
: Re:Join database con risultati multipli
: giovi 01 Jan 2017, 21:55:37
Sarà l'effetto dello spumante, ma non ci ho capito niente  ???
: Re:Join database con risultati multipli
: Alex21 02 Jan 2017, 10:26:51
L' effetto dello spumante è passato ormai, quindi ... applichiamoci.  ;)
Invece di usare una query con join potresti fare con 2 query. Meno elegante, convengo. Comunque con la prima query selezioni id_title di TAB1 e poi con una seconda query raggruppi le righe di TAB2 che hanno lo stesso id_title.
Verrebbe più bello riuscendo a fare una query con dentro una subquery, ma bisogna riguardarsi bene la sintassi mysql e poi renderla con le API database di joomla.
Oppure una singola tabella, più complessa di TAB1 + TAB2, ma anche per questa occorrono delle prove.
Buon 2017, Ciao!
: Re:Join database con risultati multipli
: ArroWeb 02 Jan 2017, 10:47:49
 ;D  era buono lo spumante?  :P
Cmq ci avevo pensato pure io a fare due query, ma se poi i dati nel database aumentano ogni volta che faccio una ricerca, il serve riceve due chiamate e ci vuole più tempo prima che risponda, sarebbe preferibile tutto in una query.
: Re:Join database con risultati multipli
: giovi 05 Jan 2017, 02:25:44
Allora forse hai bisogno di usare la funzione GROUP_CONCAT
: Re:Join database con risultati multipli
: ArroWeb 05 Jan 2017, 15:13:59
Allora forse hai bisogno di usare la funzione GROUP_CONCAT


Ci ho provato e mi restituisce un solo risultato
: Re:Join database con risultati multipli
: giovi 05 Jan 2017, 18:08:41
allora o lo usi male o ancora non ho capito la tua richiesta (evidentemente non era lo spumante il problema  :P )
Guardati questo esempio: http://stackoverflow.com/questions/4455958/mysql-group-concat-with-left-join