Соединение Mysql дает повторяющиеся строки

У меня есть 2 таблицы, и я использую join для получения общих записей из этих двух таблиц. Я использовал следующий запрос, но моя проблема в том, что я получаю записи в два раза. Запрос выглядит следующим образом

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

pos_product_selling table: enter image description here

Вывод:

enter image description here

ИЗМЕНИТЬ
Когда я пытался использовать GROUP BY и DISTINCT вместе, я не получаю дубликатов, но значение из второй таблицы повторяется. Любые другие решения?

Ответ 1

Добавьте первичный ключ в таблицу pos_metrics и введите его в таблицу pos_product_selling, затем выполните JOIN на основе первичного ключа, а также других критериев. Тогда вы не получите эти дубликаты.

Причина, по которой у вас есть дубликаты, заключается в том, что нет возможности уникального сравнения для обеих таблиц на основе значения.

Ответ 2

Попробуйте что-нибудь вроде этих

GROUP BY pos_product_selling.metrics

Ответ 3

попробуйте следующее:

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

Ответ 4

Чтобы устранить дубликаты, используйте различные:

select distinct * from ...

Но я чувствую, что ваш вопрос связан с чем-то другим - и вам нужно будет опубликовать конкретный код для получения дополнительной помощи.

Ответ 5

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

попробуйте приведенный выше запрос