Ciao ragazzi, nonostante sia ormai un po' di tempo che uso sql e php è la prima volta che do un occhio alle left join.
Quindi quello che segue potrebbe contenere delle cavolate immani
In pratica devo relazionare 3 tabelle.
faccio un esempio pratico:
tabella gruppi
tabella iscrizionicodice:+----+------+---------+--------+-------------+ | id | nome | privato | aperto | id_creatore | +----+------+---------+--------+-------------+
tabella editoricodice:+-----------+-----------+ | id_utente | id_gruppo | +-----------+-----------+
In poche parole, devo permettere l'inserimento di un articolo in un gruppo solo in queste condizioni:codice:+-----------+-----------+ | id_utente | id_gruppo | +-----------+-----------+
1. L'utente è creatore del gruppo (campo id_creatore)
2. Il gruppo è aperto, quindi chiunque è presente nella tabella iscrizioni può inserire un articolo al gruppo.
3. Il gruppo è chiuso, per poter inserire l'articolo nel gruppo bisogna essere presenti nella tabella editori oltre che in quella iscrizioni.
... ci sarebbero altre condizioni, ma voglio procedere per gradi, per il momento ho risolto le prime 2 condizioni con questa query:
(il valore 1 nella query è compilato dinamicamente, ed è l'id dell'utente in sessione)codice:SELECT * FROM gruppi g LEFT JOIN iscrizioni i ON i.id_gruppo = g.id WHERE (g.creator = 1) || ((g.grp_private = 0) && (g.grp_aperto = 1) && (i.id_utente = 1));
Posso ottenere il risultato che voglio in una query sola?
Come posso modificarla in caso?
grazie


Rispondi quotando