Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Una consulta con subconsulta, misma key

Estas en el tema de Una consulta con subconsulta, misma key en el foro de Mysql en Foros del Web. Hola, tengo dos tablas y al hacer el inner join me crea dos resultados al tener en la segunda tabla diferentes filas con el mismo ...
  #1 (permalink)  
Antiguo 15/10/2014, 06:21
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 4 meses
Puntos: 33
Una consulta con subconsulta, misma key

Hola,
tengo dos tablas y al hacer el inner join me crea dos resultados al tener en la segunda tabla diferentes filas con el mismo valor menos su id.

Me gustaria tener solo un resultado con un grupo donde tenga los valores de la segunda tabla, lo que si o si es solo tener un resultado.
No se si es posible.

Ejemplo:
tabla A tiene id, title, status

tabla B tiene id, aid (id de la tabla A), key, value

Saludos
  #2 (permalink)  
Antiguo 15/10/2014, 06:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una consulta con subconsulta, misma key

Si la tabla A se relaciona con la B en una cardinalidad 1:N es normal que haya estas "duplciaciones" que no son tales. Es el compotamiento normal, esperado y correcto.
Lo que te tiene que quedar claro es que eso implica que hay N registros de la tabla B relacionados con cada uno de los de la A, y ese N puede ir de 1 a lo que haya. Por consecuencia, como el INNER JOIN es la junta natural, a menos que el WHERE tenga condiciones que excluyan los registros adicionales, siempre te devolvera todo lo que coincida entre ambas tablas.
Lo que tienes que hacer es definir cuál es la condición que debería cumplir el registro de la tabla B para ser el unico devuelto por la consulta.
¿Es el primero?
¿Es el último ingresado?
¿Es el que tenga cierto valor en otro de los campos?

Eso es lo que debes determinar, y agregar eso en el WHERE, o bien adicionar las clausulas necesarias para cumplir con lo que quieres (ordenamieto, agrupacion, maximos, minimos, medias, etc.).

Quiero que te quede claro que el SQL no comete errores al devolverte eso. El error está en la sintaxis de la query que no los excluye.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/10/2014, 06:35
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 4 meses
Puntos: 33
Respuesta: Una consulta con subconsulta, misma key

Gracias,
pero no quiero excluir sino recibirlos todos en un unico resultado, lo que no se por desconocimento (siendo franco), es si se puede?
  #4 (permalink)  
Antiguo 15/10/2014, 06:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una consulta con subconsulta, misma key

Las bases de datos devuelven tablas de resultados, lo que luego hagas con la tabla resultante dependerá de programación.
De todos modos, sería conveniente que nis muestres la tabla de datos reales que tienes, lo que hoy obtienes (una tabla de datos), y cómo lo quisieras obtener. Dee ese modo se entendería, porque hay que considerar que no todo se resuelve en SQL, y es probable que sea más sencillo que lo manejases ed otra forma.

Muestranos ejemplso reales de datos y resultados que esperas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/10/2014, 06:54
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 4 meses
Puntos: 33
Respuesta: Una consulta con subconsulta, misma key

ok,
Estas consultas se hacen sobre wordpress y usando sus funciones para tal.
Mi consulta:
Código SQL:
Ver original
  1. SELECT f.ID, ff.* FROM $wpdb->posts AS f
  2.     INNER JOIN $wpdb->postmeta AS ff ON f.ID = ff.post_id
  3. WHERE f.ID = %d AND f.post_type = %s
Resultado:

Cita:
Editado: Código de programación no permitido en foros de BBDD. Leer las normas del foro, por favor.

Cita:
["meta_value"]=>
string(317) "a:3:{i:0;a:4:{s:2:"id";s:6:"text_1";s:5:"title";s :6:"text_1";s:4:"type";s:4:"text";s:5:"order";s:1: "1";}i:1;a:4:{s:2:"id";s:6:"text_2";s:5:"title";s: 6:"text_2";s:4:"type";s:4:"text";s:5:"order";s:1:" 2";}i:2;a:4:{s:2:"id";s:10:"textarea_3";s:5:"title ";s:10:"textarea_3";s:4:"type";s:8:"textarea";s:5: "order";s:1:"3";}}"
}
Lo que me gustaria:
es que meta_key y meta_value estuviesen dentro por ejemplo de metadata. Pero por lo que veo creo que no es posible, correcto?

Última edición por gnzsoloyo; 15/10/2014 a las 07:15
  #6 (permalink)  
Antiguo 15/10/2014, 07:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Una consulta con subconsulta, misma key

Ese tipo de valores son para programación , y no pueden ser agrupdos, concatenados ni procesados de ninguna forma, porque no representan datos puros. Cualquier cosa que les hagas corromperá los datos.
Desde el punto de vista de BBDD son tipos de campo ilegales en el modelo relacional, porque no representan dominios únicos, sino que son multivaluados (srializaciones).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/10/2014, 07:21
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 15 años, 4 meses
Puntos: 33
Respuesta: Una consulta con subconsulta, misma key

Gracias, por la aclaracion....
Lo hare en PHP o buscare una function de wordpress para ello.

Saludos

Etiquetas: join, key, subconsulta, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.