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

[SOLUCIONADO] Seleccionar registro diferentes

Estas en el tema de Seleccionar registro diferentes en el foro de Mysql en Foros del Web. Hola: No logro realizar la siguiente consulta. Tengo una tabla con valores repetidos en una columna "Producto", pero con un valor diferente en otra columna ...
  #1 (permalink)  
Antiguo 12/10/2014, 17:24
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Pregunta Seleccionar registro diferentes

Hola:

No logro realizar la siguiente consulta. Tengo una tabla con valores repetidos en una columna "Producto", pero con un valor diferente en otra columna "Marca". Mi objetivo es seleccionar todos los registros que contenga el valor de la columna "Marca", pero si para cierto valor de "Producto" no existe tal "Marca", que me muestre el que haya.

Adjunto una imagen.
Subido en subir imagenes

Muchas gracias
  #2 (permalink)  
Antiguo 12/10/2014, 17:42
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: Seleccionar registro diferentes

Postea la consulta que estás haciendo.
Las tablas de muestra nos nos dicen nada, necesitamos ver lo que realmente estás haciendo en SQL.
__________________
¿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 12/10/2014, 20:04
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Seleccionar registro diferentes

Sucede que no estoy haciendo nada aún, porque no sé cómo obtener la consulta.
En la imagen tengo la tabla de arriba ya hecha, cómo lograría obtener los resultados de la consulta abajo en la misma imagen.
  #4 (permalink)  
Antiguo 12/10/2014, 20:08
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Seleccionar registro diferentes

Adjunto una nueva imagen explicando un poco mejor mi problema. Asuman que tengo la tabla de arriba, con qué consulta obtengo los resultados de abajo.
Subido en subir imagenes
  #5 (permalink)  
Antiguo 12/10/2014, 20:49
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: Seleccionar registro diferentes

El problema está claro. Poner mas imágenes no agrega nada importante.
lo que necesitamos ver es como lo intentarias tu, para ver si conoces el uso de SQL lo suficiente como para guiarte y que se entienda, o no conoces nada de SQL y hay que explicar todo.

Al menos intenta escribir la consulta y partamos de allí.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 13/10/2014, 09:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Seleccionar registro diferentes

Tengo conocimiento en MySQL. No te preocupes. Lo que busco es la sentencia que lograría darme tales resultados. A menos que utilices algo diferente a escribir sentencias.
¿Cómo lo haría yo? Bueno, ya que intento utilizar los resultados en una aplicación PHP, buscaría primero todos los productos de marca ALFA. Posteriormente hago un recorrido de todo lo devuelto y si falta algún prodcuto, buscar el de la marca BETA. Son casi dos consultas MySQL y un procedimiento de comparacion en PHP.
Mi pregunta es: ¿Es posible obtener tales resultados con una sóla sentencia? Asume que ya tienes tal tabla en tu base de datos. ¿Qué sentencia usarías para obtener los resultados de abajo? Si tu respuesta fuese que no es posible realizarlo con una sola sentencia, no hay problema, quizá haya que usar la solución que dicto arriba o utilizar algo como procedimientos. Confieso que desconozco el uso de procedimientos en MySQL.
Hasta ahora, pues he tratado utilizando DISTINCT o consulta dentro de otra. Pero no obtengo los resultados que quiero. Si es mucho que explicar, no te preocupes.
No publicaría esta pregunta si no tengo conocimiento en SQL. Creo que eso es absurdo, pero en fin.
Saludos.
  #7 (permalink)  
Antiguo 13/10/2014, 10:25
 
Fecha de Ingreso: octubre-2006
Mensajes: 267
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Seleccionar registro diferentes

Hola. Me parece que encontré la solución. Aquí la comparto para quienes les interese:

Tomando como ejemplo la tabla de la imgen:

Código MySQL:
Ver original
  1. SELECT * FROM tabla AS T1
  2. WHERE T1.Marca='Beta'
  3. AND T1.Producto NOT IN (SELECT Producto FROM tabla AS T2 WHERE T2.Marca = 'Alfa')
Con esta primera parte, obtenemos todos los productos de marca Beta pero no aquellos productos que también hay en marca Alfa. Es decir, que si algún producto de Beta se encuentra repetido en Alfa, no lo muestra.

Ahora se agrega a la sentencia de arriba lo siguiente:
Código MySQL:
Ver original
  1. UNION (SELECT * FROM tabla AS T2 WHERE T2.Marca = 'Alfa')

Con eso último se obtendrían los registros de marca Alfa.

Espero les ayude. Como desventaja, creo que son muchas consultas realizadas y con una tabla con mayor información podría tardar un poco más. Si alguien quiere aportar algo mejor, será bienvenido. Saludos.

Última edición por metalfox6383; 13/10/2014 a las 19:08

Etiquetas: registro, 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 15:28.