diff --git a/data_diff/hashdiff_tables.py b/data_diff/hashdiff_tables.py
index 82f33369..3fb53dd9 100644
--- a/data_diff/hashdiff_tables.py
+++ b/data_diff/hashdiff_tables.py
@@ -111,8 +111,11 @@ def _validate_and_adjust_columns(self, table1: TableSegment, table2: TableSegmen
             col1 = table1._schema[c1]
             col2 = table2._schema[c2]
             if isinstance(col1, PrecisionType):
-                if strict and not isinstance(col2, PrecisionType):
-                    raise TypeError(f"Incompatible types for column '{c1}':  {col1} <-> {col2}")
+                if not isinstance(col2, PrecisionType):
+                    if strict:
+                        raise TypeError(f"Incompatible types for column '{c1}':  {col1} <-> {col2}")
+                    else:
+                        continue
 
                 lowest = min(col1, col2, key=lambda col: col.precision)
 
@@ -123,8 +126,11 @@ def _validate_and_adjust_columns(self, table1: TableSegment, table2: TableSegmen
                 table2._schema[c2] = attrs.evolve(col2, precision=lowest.precision, rounds=lowest.rounds)
 
             elif isinstance(col1, (NumericType, Boolean)):
-                if strict and not isinstance(col2, (NumericType, Boolean)):
-                    raise TypeError(f"Incompatible types for column '{c1}':  {col1} <-> {col2}")
+                if not isinstance(col2, (NumericType, Boolean)):
+                    if strict:
+                        raise TypeError(f"Incompatible types for column '{c1}':  {col1} <-> {col2}")
+                    else:
+                        continue
 
                 lowest = min(col1, col2, key=lambda col: col.precision)