Empecemosm tengo dos tablas (son más ámplias, pero pongo solo lo interesante).
Tabla 1
ID | Nombre | telefono |
1 | Luis | 666123321 |
2 | Carlos | 632987123 |
3 | Miguel | 626710012 |
Tabla 2
ID | ID_cliente | id_producto |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 1 | 2 |
3 | 3 | 4 |
3 | 1 | 3 |
Vale y tengo que hacer dos cosas.
1º Sacar todos los Clientes que no tenga el producto (id_producto) 1
1º Sacar todos los clientes que no tenga el producto 1 pero que tengan el 2
He intenado de mil formas pero no me sale :-/
Buenas.
Monta consultas que excluyan los id de cliente usando "and". Por ejemplo para el primer caso, creo que te valdría:
SELECT *
FROM tabla1
WHERE id in (select distinct id_cliente from tabla2 where id_producto <>1) and id not in (select distinct id_cliente from tabla2 where id_producto =1);
La segunda consulta que planteas, añadiendo una exclusión más, la tendrías montada.
Igual lo que planteo, se podría hacer con una consulta más optimizada mediante inner, pero a priori, lo que te indico creo que te puede valer.
Saludos.