code: private static void visitOnCondition(SQLExpr expr, TableItem tableItem) {
          if (!(expr instanceof SQLBinaryOpExpr)) {
              throw new UnsupportedOperationException();
          }
          SQLBinaryOpExpr sqlBinaryOpExpr = (SQLBinaryOpExpr) expr;
          if (sqlBinaryOpExpr.getOperator() == BooleanAnd) {
              visitOnCondition(sqlBinaryOpExpr.getLeft(), tableItem);
              visitOnCondition(sqlBinaryOpExpr.getRight(), tableItem);
          } else if (sqlBinaryOpExpr.getOperator() == Equality) {
              FieldItem leftFieldItem = new FieldItem();
              visitColumn(sqlBinaryOpExpr.getLeft(), leftFieldItem);
              if (leftFieldItem.getColumnItems().size() != 1 || leftFieldItem.isMethod() || leftFieldItem.isBinaryOp()) {
                  throw new UnsupportedOperationException("Unsupported for complex of on-condition");
              }
              FieldItem rightFieldItem = new FieldItem();
              visitColumn(sqlBinaryOpExpr.getRight(), rightFieldItem);
              if (rightFieldItem.getColumnItems().size() != 1 || rightFieldItem.isMethod()
                  || rightFieldItem.isBinaryOp()) {
                  throw new UnsupportedOperationException("Unsupported for complex of on-condition");
              }
              tableItem.getRelationFields().add(new RelationFieldsPair(leftFieldItem, rightFieldItem));
          } else {
              throw new UnsupportedOperationException("Unsupported for complex of on-condition");
          }
      }
docs: 解析on条件
  
  @param expr sql expr
  @param tableItem 表对象