Vraag Mysql join geeft dubbele rijen


Ik heb 2 tabellen en ik gebruik join om algemene records van die 2 tabellen te krijgen. ik heb de volgende vraag gebruikt maar mijn probleem is dat ik de records verdubbeld krijg. De vraag is als volgt

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 tabel:
enter image description here

pos_product_selling tabel: enter image description here

Output:

enter image description here

BEWERK
Toen ik probeerde om GROUP BY en DISTINCT samen te gebruiken, krijg ik geen duplicaten, maar de waarde uit de tweede tabel wordt herhaald. Andere oplossingen?


11
2018-06-15 02:42


oorsprong


antwoorden:


Voeg een primaire sleutel toe in de pos_metrics tafel en introduceer het bij de pos_product_selling tafel, doe dan a JOIN gebaseerd op zowel de primaire sleutel als de andere criteria. Je krijgt deze duplicaten dan niet.

De reden dat u hier duplicaten heeft, is omdat er geen mogelijkheid is om een ​​unieke vergelijking te maken op beide tabellen op basis van een waarde.


4
2018-06-15 11:53



Probeer zoiets als deze

GROUP BY pos_product_selling.metrics

10
2017-11-12 07:22



probeer dit:

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

7
2018-06-15 04:20



Gebruik Dupliceren om onderscheid te voorkomen:

select distinct * from ...

Maar ik heb het gevoel dat je vraag over iets anders gaat - en dat je de specifieke code moet posten voor meer hulp.


3
2018-06-15 02:45



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

probeer de bovenstaande query


1
2018-06-15 02:48