diff --git a/pandas/core/reshape/merge.py b/pandas/core/reshape/merge.py index 27b331babe692..4220be278572c 100644 --- a/pandas/core/reshape/merge.py +++ b/pandas/core/reshape/merge.py @@ -1283,6 +1283,10 @@ def _validate(self, validate: str): raise MergeError( "Merge keys are not unique in left dataset; not a one-to-many merge" ) + elif right_unique: + raise MergeError( + "Merge keys are unique in right dataset; not a one-to-many merge" + ) elif validate in ["many_to_one", "m:1"]: if not right_unique: @@ -1290,9 +1294,20 @@ def _validate(self, validate: str): "Merge keys are not unique in right dataset; " "not a many-to-one merge" ) + elif left_unique: + raise MergeError( + "Merge keys are unique in left dataset; not a many-to-one merge" + ) elif validate in ["many_to_many", "m:m"]: - pass + if left_unique: + raise MergeError( + "Merge keys are unique in left dataset; not a many-to-many merge" + ) + elif right_unique: + raise MergeError( + "Merge keys are unique in right dataset; not a many-to-many merge" + ) else: raise ValueError("Not a valid argument for validate")