Ammettiamo di avere un DB con questa struttura e dati:
in pratica tra la tabella 'channel' e quella 'gruppi' vi è una relazione molti a molti, per cui vengono messe in relazione tramite una tabella di collegamento che contiene gli abbinamenti tra i channel e i gruppi.codice:Tabella 'channel' --------------- | id_channel | --------------- | 7 | | 17 | --------------- Tabella 'gruppi' ------------- | id_gruppo | ------------- | 1 | | 2 | ------------- Tabella 'channel_gruppi' ---------------------------- | id_channel | id_gruppo | ---------------------------- | 7 | 1 | | 7 | 2 | | 17 | 2 | ----------------------------
da un id_gruppo per estrarre gli id_channel associati uso questa query:
funziona a dovere. Il problema nasce quando devo fare i contrario, cioè quando devo trovare gli id_channel *NON* associati ad un gruppo. Ad esempio (vedi sopra) ottenere l'id_channel NON associato al gruppo 1 e dovrei ottenere l'id_channel 17, oppure ottenere gli id_channel NON associati al gruppo 2 e dovrei ottenere nessun record.codice:SELECT channel.id_channel FROM channel, gruppi, channel_gruppi WHERE channel.id_channel=channel_gruppi.id_channel AND channel_gruppi.id_gruppo=gruppi.id_gruppo AND gruppi.id_gruppo=$identificativo_gruppo
Ovviamente farlo con più query è facile ma vorrei riuscirci con una sola.
E' possibile?

Rispondi quotando