Se vuoi estrarre i records della prima tabella anche se non trovano corrispondenza nella seconda dovresti usare LEFT JOIN
Se vuoi estrarre i records della prima tabella anche se non trovano corrispondenza nella seconda dovresti usare LEFT JOIN
sergio di sunelweb
Ma non era ciò che chiedevi?Originariamente inviato da carlo2002
Grazie, avevo provato qualcosa di simile, ma così ottengo solamente i record della tabella 'gruppi' (duplicati) e non quelli indicati nella tabella 'condivisioni'...
Originariamente inviato da carlo2002
Dovrei ricavare dalla tabella 'gruppi' i record che corrispondono ad un determinato 'id_staff' presente in entrambe le tabelle.
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Hai ragione, temo di essermi spiegato maleOriginariamente inviato da satifal
Ma non era ciò che chiedevi?ora ci riprovo...
In pratica ogni utente identificato con 'id_staff' può formare dei guppi, quindi nella tabella 'gruppi', ogni record sarà associato ad un 'id_staff'.
Poi mi è arrivata la richiesta che i gruppi dovevano poter essere condivisi con altri utenti, quindi ho pensato di fare la tabella 'condivisioni' per associare ad ogni gruppo altri id_staff.
Il risultato che vorrei ottenere è che quando ogni utente visualizza l'elenco dei suoi gruppi tra questi comparissero anche quelli che altri utenti hanno condiviso con lui.
Qundi dovrei trovare il modo di fare una select che facendo riferimento ad 'id_staff' estragga i relativi record sia dalla tabella 'guppi' sia dalla tabella 'condivisioni'. Naturalmente può essere che l'utente non abbia record in 'gruppi' ma li abbia in 'condivisioni' e vicevera.
non ne vengo fuori.
![]()
Errare humanum est, perseverare ovest
Sto provando con una Left Join
Così prende i record nella tabella 'gruppi', ognuno ripetuto per il numero di associazioni con lo stesso 'id_staff' presenti nella tabella 'condivisioni'Codice PHP:$query = "SELECT g.id_gruppo,nome_gruppo
FROM gruppi g
LEFT JOIN condivisioni c
ON g.id_staff = c.id_staff
WHERE g.id_staff = '".$_dati_utente['id_staff']."'
" ;
Naturalmente se richiedo c.id_gruppo avviene l'inverso. Quindi i records vengono presi unicamente da una sola tabella, devo capire come prenderli da entrambe![]()
Errare humanum est, perseverare ovest
Desideravo farne una sola, intanto per capire se e come si poteva fare una cosa del genere e poi per ordinare i records in ordine alfabetico con il campo 'nome' presente solo nella tabella 'gruppi'.
Si potrei fare prima una select in 'condivisioni' con cui confezionare una stringa di id separati da virgola da utilizzare poi nell'altra query con un AND id_gruppi IN ($stringa_id). Se non trovo una soluzione più elegante andrà a finire che risolverò così![]()
Errare humanum est, perseverare ovest