nanolibero Posted January 14 Share Posted January 14 Buenos días a todos soy muy nuevo en todo lo que es sql y necesitaría vuestra ayuda, quisiera obtener todas las direcciones de mail de los clientes registrados en la tienda de un país especifico, estoy toda la mañana buscando pero no he encontrado nada... me quedo en SELECT email FROM ps_customer WHERE ps_country no se si voy bien o como agregar el id del país muchas gracias a quien me pueda ayudar Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 15 Share Posted January 15 (edited) Hola @nanolibero El país del usuario está en su dirección, así que debes hacer un "join" de ambas tablas: SELECT a.email FROM ps_customer a, ps_address b WHERE a.id_customer = b.id_customer AND b.id_country=xx donde "xx" es el id del pais de la tabla ps_country; Si te resulta mas fácil, podemos simplificar este valor complicando un poco la sql: SELECT a.email FROM ps_customer a, ps_address b, ps_country c WHERE a.id_customer = b.id_customer AND b.id_country = c.id_country AND c.iso_code='ES' Ahora en lugar del id puedes usar el Iso_code del país. Solo una nota. Aunque no es lo normal, puesto que el país de un usuario lo obtenemos de la dirección, si un usuario tiene varias direcciones en el país aparecerá su email varias veces. Tantas como direcciones tenga. Evitamos esto usando la función distinct: SELECT distinct(a.email) FROM ps_customer a, ps_address b, ps_country c WHERE a.id_customer = b.id_customer AND b.id_country = c.id_country AND c.iso_code='ES' Espero te sirva. Edited January 15 by Manuel_GT (see edit history) 1 Link to comment Share on other sites More sharing options...
nanolibero Posted January 15 Author Share Posted January 15 hace 1 hora, Manuel_GT dijo: Hola @nanolibero El país del usuario está en su dirección, así que debes hacer un "join" de ambas tablas: SELECT a.email FROM ps_customer a, ps_address b WHERE a.id_customer = b.id_customer AND b.id_country=xx donde "xx" es el id del pais de la tabla ps_country; Si te resulta mas fácil, podemos simplificar este valor complicando un poco la sql: SELECT a.email FROM ps_customer a, ps_address b, ps_country c WHERE a.id_customer = b.id_customer AND b.id_country = c.id_country AND c.iso_code='ES' Ahora en lugar del id puedes usar el Iso_code del país. Solo una nota. Aunque no es lo normal, puesto que el país de un usuario lo obtenemos de la dirección, si un usuario tiene varias direcciones en el país aparecerá su email varias veces. Tantas como direcciones tenga. Evitamos esto usando la función distinct: SELECT distinct(a.email) FROM ps_customer a, ps_address b, ps_country c WHERE a.id_customer = b.id_customer AND b.id_country = c.id_country AND c.iso_code='ES' Espero te sirva. muchas pero muchas gracias @Manuel_GT por tu amabilidad, lo probaré pero ya es de agradecer tu tiempo y disponibilidad en responder Link to comment Share on other sites More sharing options...
Manuel_GT Posted January 15 Share Posted January 15 Sin problema @nanolibero Estamos aquí para ayudarnos entre todos. Yo también tengo mi batería de preguntas 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now