Соединение 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
попробуйте приведенный выше запрос