Использование GROUP BY может помочь вам частично, но будьте осторожны. Если вы делаете что-то вроде этого:
Select A.NAME, min(B.DATA1), min(B.DATA2)
From A Inner Join B on A.NAME = B.NAME
Group by A.NAME;
Вы получите результат, который ищете:
NAME DATA1 DATA2
sameName 1 2
otherName 5 7
Но только из-за данных, которые вы тестируете. Если вы измените данные, чтобы вместо:
otherName 8 9
у вас было:
otherName 8 4
Возвращается:
NAME DATA1 DATA2
sameName 1 2
otherName 5 4
Обратите внимание, что otherName не возвращает DATA1 и DATA2 из одной и той же записи!
Обновление: самостоятельное объединение со сравнением одного из значений данных может помочь вам, например:
SELECT a.*, b.* FROM a,b
LEFT JOIN b b2 ON b.name = b2.name AND b.data2 < b2.data2
WHERE a.name = b.name AND b2.data2 IS NOT NULL;
Однако это будет работать только в том случае, если значения в DATA2 уникальны для ИМЯ.