Ciao, mi sto incartando su una (apparentemente) semplice JOIN.
Ho queste due tabelle e devo scrivere una query che mi trovi i contatti che NON sono nella lista di appartenenza.
Come esempio qui la lista con id 15 contiene gli id 8-9-10 quindi la query dovrebbe restituirmi 11-12-13.
Ho provato a scrivere questa query ma non và, potete dirmi dove sbaglio ?
Grazie mille.
select * from contatti join listecontatti on contatti.id=listecontatti.idcontatto where contatti.id<>listecontatti.idcontatto and listecontatti.idlista=15;
mysql> select * from contatti;
+----+-------+----------+------+------+------+---------+-------+------+
| id | nome | cognome | sms | voce | fax | twitter | email | ente |
+----+-------+----------+------+------+------+---------+-------+------+
| 8 | nome3 | cognome3 | NULL | NULL | NULL | NULL | NULL | NULL |
| 9 | nome4 | cognome5 | NULL | NULL | NULL | NULL | NULL | NULL |
| 10 | nome5 | cognome5 | NULL | NULL | NULL | NULL | NULL | NULL |
| 11 | nome6 | cognome6 | NULL | NULL | NULL | NULL | NULL | NULL |
| 12 | nome7 | cognome7 | NULL | NULL | NULL | NULL | NULL | NULL |
| 13 | nome8 | cognome8 | NULL | NULL | NULL | NULL | NULL | NULL |
+----+-------+----------+------+------+------+---------+-------+------+
6 rows in set (0.00 sec)
mysql> select * from listecontatti;
+----+------------+------------------+---------+
| id | idcontatto | idlistacollegata | idlista |
+----+------------+------------------+---------+
| 70 | 10 | -1 | 15 |
| 69 | 9 | -1 | 15 |
| 68 | 8 | -1 | 15 |
+----+------------+------------------+---------+
3 rows in set (0.00 sec)
Ho queste due tabelle e devo scrivere una query che mi trovi i contatti che NON sono nella lista di appartenenza.
Come esempio qui la lista con id 15 contiene gli id 8-9-10 quindi la query dovrebbe restituirmi 11-12-13.
Ho provato a scrivere questa query ma non và, potete dirmi dove sbaglio ?
Grazie mille.
select * from contatti join listecontatti on contatti.id=listecontatti.idcontatto where contatti.id<>listecontatti.idcontatto and listecontatti.idlista=15;
mysql> select * from contatti;
+----+-------+----------+------+------+------+---------+-------+------+
| id | nome | cognome | sms | voce | fax | twitter | email | ente |
+----+-------+----------+------+------+------+---------+-------+------+
| 8 | nome3 | cognome3 | NULL | NULL | NULL | NULL | NULL | NULL |
| 9 | nome4 | cognome5 | NULL | NULL | NULL | NULL | NULL | NULL |
| 10 | nome5 | cognome5 | NULL | NULL | NULL | NULL | NULL | NULL |
| 11 | nome6 | cognome6 | NULL | NULL | NULL | NULL | NULL | NULL |
| 12 | nome7 | cognome7 | NULL | NULL | NULL | NULL | NULL | NULL |
| 13 | nome8 | cognome8 | NULL | NULL | NULL | NULL | NULL | NULL |
+----+-------+----------+------+------+------+---------+-------+------+
6 rows in set (0.00 sec)
mysql> select * from listecontatti;
+----+------------+------------------+---------+
| id | idcontatto | idlistacollegata | idlista |
+----+------------+------------------+---------+
| 70 | 10 | -1 | 15 |
| 69 | 9 | -1 | 15 |
| 68 | 8 | -1 | 15 |
+----+------------+------------------+---------+
3 rows in set (0.00 sec)