2011-06-15 3 views
10

У меня есть 2 таблицы, и я использую join для получения общих записей из этих двух таблиц. Я использовал следующий запрос, но моя проблема в том, что я получаю записи в два раза. Запрос следующимMysql 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 таблицы: enter image description here

Выход:

enter image description here

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

ответ

4

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

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

+1

Что вы подразумеваете под "и вводите его в таблицу' pos_product_selling'? –

+0

@Ricky B Он означает создать столбец на таблицу pos_product_selling, значение которой является первичным ключом в pos_metrics. Типичным именем для такого столбца будет «pos_metrics_id» –

3

Для устранения Dups используйте отчетливый:

select distinct * from ... 

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

+0

пытался тат. не работает !! – Deepak

+0

Просто отредактировал его. –

+0

Мое чувство, что вам нужна группа, где-то, но на ваш вопрос не хватает контекста. –

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 

попробовать выше запрос

+0

не работает еще. – Deepak

7

попробовать это:

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

это работает, но это правильный способ? Я имею дело с тысячами записей здесь. – Deepak

+2

проверить мое редактирование У меня проблема с вашим решением. – Deepak

7

Try что-то вроде этих

GROUP BY pos_product_selling.metrics 
+3

Можете ли вы прокомментировать свой ответ? –

Смежные вопросы