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