możesz użyć GROUP BY klauzula, HAVING klauzula i COUNT() w związku z tym problemem nie ma potrzeby dołączania do podzapytania
SELECT PersonName, MAX(Flower) flowerName
FROM TableName
GROUP BY PersonName
HAVING COUNT(DISTINCT Flower) = 1