MySQL - Máximo y comparar tablas

 
Vista:
Imágen de perfil de statham
Val: 86
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Máximo y comparar tablas

Publicado por statham (34 intervenciones) el 15/04/2019 19:33:10
Buenas gente, llevo varios días intentando realizar cierto ejercicio donde no consigo sacarlo

Os comento, tengo 2 tablas A y B

Digamos que en la tabla B tengo id_b y tipo

Y en la tabla A, tengo id_A y id_B

Ejemplo

Tabla B
| id_b| tipo
| 1 | a
| 2 | a
| 3 | a
| 4 | a
| 5 | b
| 6 | b

Tabla A
| id_a| id_b
| 1 | 1
| 2 | 1
| 3 | 1
| 4 | 1
| 5 | 6
| 6 | 6

El objetivo seria sacar el id_b de cada tipo de la tabla A que mas se use, en este caso los maximos serian el 1 y 6
No consigo sacar el maximo, solo el numero de veces que aparece id_b en la tabla A y por tanto me saca todos, y solo quiero el mas usado


Lo siguiente seria una vez sacado el maximo(creo que deberia guardarlo en una tabla auxiliar),coger el mas usado, por ejemplo id_b 1 y comprobar si algun campo de esa fila esta vacio o nulo(de la tabla B) y puedo rellenarlo con el resto de filas del mismo tipo y a continuacion eliminar los que no son los mas usados, es decir, los id_b 2,3,4 y 6

Aqui directamente no se comparar filas de una misma tabla o diferentes(pero con mismos campos, claro), o de eliminar si , menos mal jejeje pero no se si debe ser la comparacion con una funcion y un cursor que recorrar campos y rellene o algo similar....

Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 650
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Máximo y comparar tablas

Publicado por joel (231 intervenciones) el 16/04/2019 08:23:11
Me queda claro que quieres obtener de la tabla A el que tiene el id_b mas utilizado... segun entiendo seria algo así:

1
SELECT id_b FROM TablaA ORDER BY count(id_b) DESC LIMIT 1

Te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de statham
Val: 86
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Máximo y comparar tablas

Publicado por statham (34 intervenciones) el 16/04/2019 08:53:42
pues la verdad que eso ya lo habia probado y nada, no me sale ninguna fila como resultado....

gracias aun asi

si tengo esto,

create table a(ida integer, idb2 integer);
create table b(idb integer, tipo char);



insert into a(ida, idb2) values(1, 1);
insert into a(ida, idb2) values(2, 1);
insert into a(ida, idb2) values(3, 1);
insert into a(ida, idb2) values(4, 1);
insert into a(ida, idb2) values(5, 6);
insert into a(ida, idb2) values(6, 6);
insert into a(ida, idb2) values(7, 7);
insert into a(ida, idb2) values(8, 7);
insert into a(ida, idb2) values(9, 2);
insert into a(ida, idb2) values(10, 5);
insert into a(ida, idb2) values(11, 5);
insert into a(ida, idb2) values(12, 5);
insert into a(ida, idb2) values(13, 6);

insert into b(idb, tipo) values(1, 'a');
insert into b(idb, tipo) values(2, 'a');
insert into b(idb, tipo) values(3, 'a');
insert into b(idb, tipo) values(4, 'a');
insert into b(idb, tipo) values(5, 'b');
insert into b(idb, tipo) values(6, 'b');
insert into b(idb, tipo) values(7, 'c');

he conseguido llegar hasta aqui:

select tipo,max(hola) from
(select tipo,count(idb2) as hola from a join b on idb2=idb group by tipo,idb) T group by tipo;

pero no consigo sacar las id_b de los que mas se repiten
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar