Ammettiamo di avere un DB con questa struttura e dati:
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 |
----------------------------
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.
da un id_gruppo per estrarre gli id_channel associati uso questa query:
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
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.
Ovviamente farlo con più query è facile ma vorrei riuscirci con una sola.
E' possibile?