2011-06-15 30 views
10

Tengo 2 tablas y estoy usando join para obtener registros comunes de esas 2 tablas. He utilizado la siguiente consulta pero mi problema es que estoy duplicando los registros. La consulta es la siguiente tablaLa combinación Mysql da filas duplicadas

SELECT * FROM pos_metrics pm INNER JOIN pos_product_selling pps ON 
pm.p_id=pps.p_id WHERE pm.p_id='0' AND pps.pos_buying_id='0' AND pm.type=1 

pos_metrics:
enter image description here

mesa pos_product_selling: enter image description here

Salida:

enter image description here

EDITAR
Cuando traté de usar GROUP BY y DISTINCT juntos, no obtengo duplicados pero el valor de la segunda tabla se repite. ¿Alguna otra solución?

Respuesta

4

añadir una clave primaria en la tabla pos_metrics e introducirlo a la mesa pos_product_selling, y luego hacer un JOIN basada en la clave primaria así como los otros criterios. No obtendrás estos duplicados entonces.

La razón por la que tiene duplicados aquí es porque no hay posibilidad de realizar una comparación única en ambas tablas en función de un valor.

+1

¿Qué quiere decir con "y preséntelo a la tabla' pos_product_selling' " –

+0

@Ricky B Quiere decir crear una columna en la tabla pos_product_selling cuyo valor es una clave principal en pos_metrics. Un nombre típico para dicha columna sería "pos_metrics_id" –

3

Para eliminar los DUP, para uso distinto:

select distinct * from ... 

Pero Tengo la sensación de que su pregunta se refiere a algo más - y que se necesitaría para publicar el código específico para obtener más ayuda.

+0

trató tat. no funciona! – Deepak

+0

Acabo de editarlo también. –

+0

Mi sensación es que necesitas un grupo por tener un lugar, pero tu pregunta carece de contexto. –

1
SELECT * FROM pos_metrics pm, pos_product_selling pps 
Where pm.p_id=pps.p_id AND pm.p_id='0' AND pps.pos_buying_id='0' AND pm.type=1 

tratar la consulta anterior

+0

aún no funciona ... – Deepak

7

intente esto:

SELECT DISTINCT * FROM ... 
GROUP BY pm.metrics 
+1

esto funciona, pero ¿es esta la manera correcta de hacerlo? estoy tratando con miles de registros aquí ... – Deepak

+2

verifique mi edición tengo un problema con su solución ... – Deepak

7

intentar algo como esto

GROUP BY pos_product_selling.metrics 
+3

¿Puede comentar su respuesta? –

Cuestiones relacionadas