2013-08-16 5 views
0
SELECT T2.ITEM_ID AS item_ITEM_ID 
FROM types T 
    JOIN items T2 
    ON T.ITEM_ID = T2.ITEM_PARENT_ID 
WHERE T.ITEM_TYPE = 'I' 
AND T2.ITEM_TYPE = 'I' 

Этот запрос возвращает строки из T2 с дублирующими идентификаторами T2.ITEM_PARENT_ID.
Как я могу указать этот запрос для возврата только строк с уникальными идентификаторами T2.ITEM_PARENT_ID?MYSQL Select Join - указать уникальные значения в Join

ответ

1

Подсчитайте повторы и отфильтровать, когда они больше, чем 1.

SELECT T2.ITEM_ID AS item_ITEM_ID, COUNT(*) dups 
FROM types T 
    JOIN items T2 
    ON T.ITEM_ID = T2.ITEM_PARENT_ID 
WHERE T.ITEM_TYPE = 'I' 
AND T2.ITEM_TYPE = 'I' 
GROUP BY item_ITEM_ID 
HAVING dups = 1 

DEMO

+0

Получение ошибки @ HAVING Dups = 1 – bushdiver

+0

я не получаю сообщение об ошибке. См. Демонстрацию. – Barmar