Subconsulta que me complica

Hola tonybc,, tengo una consulta que me esta rompiendo la cabeza y se supone es fácil,, tengo una tabla con emails y tipo,, o sea dos campos: Email | Type,, type toma los valores 1, 2 o 3 y tengo otra tabla con emails,,, quiero saber cuantos mails son iguales a 1 o a 2 o a 3,, ¿se entiende
me puedes ayudar? Estoy trabajando en Access,, ya que el mysql que tengo no soporta subconsultas

1 Respuesta

Respuesta
1
Entiendo lo siguiente:
Tienes una tabla así:
mail type
------------------------ ------
[email protected] 1
[email protected] 2
[email protected] 3
[email protected] 2
[email protected] 3
[email protected] 2
Lo único que tienes que hacer es lo siguiente:
*** para contarlos es así:
select type, (*)
from tablamailtype
group by type ;
así sabes cuantos mails hay para cada tipo.
*** para saeber cuales mails son de que tipo es así:
select mail
from tablamailtype
where type = 1;
select mail
from tablamailtype
where type = 2;
select mail
from tablamailtype
where type = 3;
Espero haya podido ayudarte amigo.
Saludos
Abc
:)
Bien hasta ahí entiendo todo,, ¿el problema es cruzar las dos tablas
tabla1 tiene el campo email
tabla2 tiene los campos email y type
si necesito todos los de la tabla 1 con type 1 como seria? Se entiend,, tengo que filtra por separado los tres tipos de email pero de la tabla1,, y luego los que no coinciden con ningún mail de la tabla2 (o sea no están en la tabla2)
Desde ya muchas gracias y espero que entiendas lo que necesito
:)
Ok, ya entiendo, lo que tienes que hacer es lo siguiente:
Opción 1:
select b.*
from tablamailtype a, tablamails b
where a.type = 1
and a.mail = b.mail;
opción 2:
select b.*
from tablamails b
where b.mail in ( select a.mail from tablamailtype a where a.type = 1 ) ;
Así puedes obtener la inf. Que buscas de dos maneras.
Espero ahora sí haya podido ayudarte.
Saludos
Abc
;)
Muchas gracias! Yo hice algo así pero no me cierran los resultados
Si hago un select * from tabla2 me da como 2500 resultados,, y cuando los filtros con el select .. in ... con cada uno de los tipos 1,2o3 me dan muy pocos,, ¿cómo harías para que devuelva los que no son ninguno de los 3 tipos? o sea algo asi type <> 1 or type<>2? Eso me parece que no anda
Gracias!
Opción 1:
select b.*
from tablamailtype a, tablamails b
where a.type not in (1,2,3)
and a.mail = b.mail;
opción 2:
select b.*
from tablamails b
where b.mail in ( select a.mail from tablamailtype a where a.type not in (1,2,3) ) ;
opción 3:
opción 1:
select b.*
from tablamailtype a, tablamails b
where a.type > 3
and a.mail = b.mail;
Puedes probar con estas...
Ahora que te vendría bien hacer una consulta para saber los diferentes types que hay:
select distinct type
From tablamailtype .
Bien creo que esto si te servirá.
Saludos
Abc
:)
Infinitamente gracias
=) saludos te seguire consultando
Podrías cerrar la pregunta, por favor...
Mil gracias!
Saludos
Abc
:)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas