精华内容
下载资源
问答
  • 嵌套选择集有一个微妙但可能造成严重影响的副作用: 它会给每个 group 设置父节点. 父节点是选择集的一个隐藏属性, 它会在被调用 append 方法时使用, 将子元素添加到父节点的 Dom 元素当中. 比如: 如果你想通过下面的...

    译者注:

    原文: Mike Bostock (D3.js 作者) – Nested Selections

    译者: ssthouse

    本文讲解的是关于 D3.js 中 d3-selection 的使用. d3-selection 是 d3 的核心所在, 它提供了一种和以往 Dom 操作数据操作 完全不同的思路, 让我们能非常优雅的进行数据可视化工作.
    本文是 d3 作者对于 d3-selection 中 嵌套选择集 的讲解, 本人阅读后觉得很有启发, 所以翻译成中文, 希望对读者也能有所帮助.

    译文

    D3 的 选择集是分层级的, 就像 Dom 元素和数据集是可以有层级的一样. 比如说 Table:

    <table>
      <thead>
        <tr><td>  A</td><td>  B</td><td>  C</td><td>  D</td></tr>
      </thead>
      <tbody>
        <tr><td>  0</td><td>  1</td><td>  2</td><td>  3</td></tr>
        <tr><td>  4</td><td>  5</td><td>  6</td><td>  7</td></tr>
        <tr><td>  8</td><td>  9</td><td> 10</td><td> 11</td></tr>
        <tr><td> 12</td><td> 13</td><td> 14</td><td> 15</td></tr>
      </tbody>
    </table>

    如果让你只选中 tbody 元素中的 td, 你会如何操作? 直接使用 d3.selectAll('td') 显然会选中所有的 td 元素(包括 thead 和 tbody). 如果想只选中存在与 B 元素中的 A 元素, 你需要这样操作:

    var td = d3.selectAll('tbody td')

    除了上面那种方法, 你还可以先选中 tbody, 再选中 td 元素, 像这样:

    var td = d3.select('tbody').selectAll('td')

    因为 selectAll 会对当前选择集中的每个元素(如: tbody)选中其符合条件的子元素(如: td). 这种方法会得到和 d3.selectAll('tbody td') 相同的结果. 但如果你之后想要对同一父元素的选择集引申出更多的选择集的话 (比如区分选中 table 中的奇数行选择集和偶数行选择集), 这种嵌套选择集方式会方便的多.

    嵌套中索引的使用

    接着上面的例子, 如果你使用 d3.selectAll('td') , 你会得到一个平展的选择集, 像这样:

    flat selection

    var td = d3.selectAll('tbody td')

    平展的选择集缺少了层级结构: 不论是 thead 中的 td 还是 tbody 中的 td 全都被展开成了一个数组, 而不是以父元素进行分组. 这让我们想对每一行或是每一列的 td 进行操作变得很困难. 与此相反的, D3 的嵌套选择集能保存层级关系. 比如我们想以行的方式对选择集分组, 我们首先选中 tr 元素. 然后选中 td 元素.

    nested selection

    var td = d3.selectAll('tbody tr').selectAll('td')

    现在, 如果你想让第一列的所有元素变红, 你可以利用 index 参数 i:

    td.style('color', function(d, i) {
      return i ? null : 'red'
    })

    上面的参数 i 是 td 元素在 tr 中的索引, 你还可以通过添加一个 j 参数来获得当前的行数的索引. 像这样:

    td.style('color', function(d, i, j) {
      console.log(`current row: ${j}`)
      return i ? null : 'red'
    })

    嵌套和数据间的关联

    层级结构的 Dom 元素常常是由层级结构的数据来驱动的. 而层级的选择集能更方便的处理数据绑定.
    继续上面的例子, 你可以把 table 的数据表示为一个矩阵:

    var matrix = [
      [0, 1, 2, 3], 
      [4, 5, 6, 7], 
      [8, 9, 10, 11], 
      [12, 13, 14, 15]
    ]

    为了让这些数据绑定上对应的 td 元素, 我们首先将矩阵的每一行和 tr 绑定对应起来, 然后再将矩阵中一行的每一个元素和 tr 中的每一个 td 绑定起来:

    var td = d3
      .selectAll('tbody tr')
      .data(matrix)
      .selectAll('td')
      .data(function(d, i) {
        return d
      }) // d is matrix[i]

    需要注意的是, data() 不仅可以传入一个数据, 它还可以传入一个 返回一个数组的 function. 平展的选择集通常对应的是单个数组, 是因为平展的选择集只有一个 group.

    上面的 row 选择集是一个平展的选择集, 因为它是直接由 d3.selectAll 创建的:

    tr flat selection

    var tr = d3.selectAll('tbody tr').data(matrix)

    而 td 的选择集是嵌套的:

    tr nested selection

    var td = tr.selectAll('td').data(function(d) {
      return d
    }) // matrix[i]

    data 传入的 操作函数给每一个 group 绑定了一个数组数据. d3 会对每一行 tr 调用操作函数. 因为父元素数据是矩阵, 所以操作函数在每次被调用时只是简单的返回矩阵中当前行的数据, 来和 tr 进行绑定.

    嵌套中父节点作用

    嵌套选择集有一个微妙但可能造成严重影响的副作用: 它会给每个 group 设置父节点. 父节点是选择集的一个隐藏属性, 它会在被调用 append 方法时使用, 将子元素添加到父节点的 Dom 元素当中. 比如: 如果你想通过下面的方式进行数据绑定操作, 你会得到一个 error:

    wrong append operation

    d3.selectAll('table tr')
      .data(matrix)
      .enter()
      .append('tr') // error!

    上面的代码之所以会报错, 是因为默认的父节点是 html 元素, 你不能直接将 tr 元素添加到 html 元素中. 所以, 我们应该在进行数据绑定前, 先选择好父节点:

    choose parent node before append operation

    d3.select('table')
      .selectAll('tr')
      .data(matrix)
      .enter()
      .append('tr') // success

    这种方式可以用来选择任意层级的嵌套选择集. 比如你想从头创建一个 table, 并填入上面矩阵中的数据, 你可以首选选中 body 元素:

    create table manually

    var body = d3.select('body')

    接下来在父节点 body 中添加一个 table:

    append table to body

    var table = body.append('table')

    接下来绑定矩阵数据, 创建 tr 元素. 因为 selectAll 是在 table 元素上进行调用的, 所以父节点是 table:

    append tr to table

    var tr = table
      .selectAll('tr')
      .data(matrix)
      .enter()
      .append('tr')

    最后我们以 tr 作为父节点, 创建 td 元素:

    append td to tr

    var td = tr
      .selectAll('td')
      .data(function(d) {
        return d
      })
      .enter()
      .append('td')

    要不要使用嵌套选择集 ?

    在 D3 中, select 和 selectAll 有一个很重要的区别: select 会继续使用当前存在的 group, 而 selectAll 总是会创建新的 group. 因此调用 select 能保存原有 selection 的数据, 索引位置, 甚至父节点.

    比如, 下面的平展的选择集, 它的父节点仍然是 html 节点:

    parent node is html

    var td = d3.selectAll('tbody tr').select('td')

    想要得到嵌套的选择集, 唯一的方法就是在已有的选择集的基础上, 调用 selectAll 方法. 这就是为什么数据绑定总是出现在 selectAll 之后, 而不是 select 之后.

    这篇文章使用 table 作为例子仅仅是为了方便讲解层级结构. 其实 table 的使用并不是特别具有典型性. 其实还有许多其它 嵌套选择集的例子(点我查看, 点我查看)

    就像 用 join 的方式思考 一样, 嵌套选择集同样使用了一种思想上完全不同的处理 Dom 元素数据 的思路. 这种思路刚开始可能很难理解, 但你一旦掌握了, 你就能驾轻就熟的使用 D3.js 来完成你的数据可视化任务了.

    如果觉得不错的话, 不妨点下面的链接关注一下 : )

    github 主页

    知乎专栏

    掘金

    展开全文
  • mysql(多级分销)...前三种好理解,最后一种嵌套集设计需要程序维持完整性,这里着重讲解设计思路,并附有Golang实现的源码(增删改查),各位同仁可斟酌后选择,希望对大家有帮助,有任何疑问在评论区留言交流。
  • Krajee 的增强型树管理模块,使用嵌套集选择和操作树节点。 下面列出了扩展功能: 一个完整的树管理解决方案,提供管理使用嵌套集存储的分层数据的能力。 利用扩展来管理数据库中的树结构。 在开始使用此模块之前...
  • 可是如果我们想从茫茫算法中选择最合适的算法,用什么方法呢?这就是本节要介绍的嵌套交叉验证(nested cross validation)。 Varma和Simon在论文Bias in Error Estimation When Using Cross-validation for Model ...

    结合k折交叉验证和网格搜索是调参的好手段。可是如果我们想从茫茫算法中选择最合适的算法,用什么方法呢?这就是本节要介绍的嵌套交叉验证(nested cross validation)。 Varma和Simon在论文Bias in Error Estimation When Using Cross-validation for Model Selection中指出使用嵌套交叉验证得到的测试集误差几乎就是真实误差。

    +

    嵌套交叉验证外层有一个k折交叉验证将数据分为训练集和测试集。还有一个内部交叉验证用于选择模型算法。下图演示了一个5折外层交叉沿则和2折内部交叉验证组成的嵌套交叉验证,也被称为5*2交叉验证:

    Python机器学习:6.5 通过嵌套交叉验证选择算法

    sklearn中可以如下使用嵌套交叉验证:

    Python机器学习:6.5 通过嵌套交叉验证选择算法

    我们使用嵌套交叉验证比较SVm和决策树分类器:

    Python机器学习:6.5 通过嵌套交叉验证选择算法

    Python机器学习中文版目录(http://www.aibbt.com/a/20787.html)

    转载请注明出处,Python机器学习(http://www.aibbt.com/a/pythonmachinelearning/)

    转载于:https://www.cnblogs.com/aibbtcom/p/8548484.html

    展开全文
  • 嵌套交叉验证 输出超参数Cross-Validation also referred to as out of sampling technique is an essential element of a data science project. It is a resampling procedure used to evaluate machine learning ...

    嵌套交叉验证 输出超参数

    Cross-Validation also referred to as out of sampling technique is an essential element of a data science project. It is a resampling procedure used to evaluate machine learning models and access how the model will perform for an independent test dataset.

    交叉验证(也称为“过采样”技术)是数据科学项目的基本要素。 它是一个重采样过程,用于评估机器学习模型并访问该模型对独立测试数据集的性能。

    Hyperparameter optimization or tuning is a process of choosing a set of hyperparameters for a machine learning algorithm that performs best for a particular dataset.

    超参数优化或调整是为机器学习算法选择一组超参数的过程,该算法对特定数据集的性能最佳。

    Both Cross-Validation and Hyperparameter Optimization is an important aspect of a data science project. Cross-validation is used to evaluate the performance of a machine learning algorithm and Hyperparameter tuning is used to find the best set of hyperparameters for that machine learning algorithm.

    交叉验证和超参数优化都是数据科学项目的重要方面。 交叉验证用于评估机器学习算法的性能,而超参数调整则用于为该机器学习算法找到最佳的超参数集。

    Model selection without nested cross-validation uses the same data to tune model parameters and evaluate model performance that may lead to an optimistically biased evaluation of the model. We get a poor estimation of errors in training or test data due to information leakage. To overcome this problem, Nested Cross-Validation comes into the picture.

    没有嵌套交叉验证的模型选择使用相同的数据来调整模型参数并评估模型性能,这可能导致对模型的乐观评估。 由于信息泄漏,我们对训练或测试数据中的错误的估计很差。 为了克服这个问题,嵌套交叉验证成为了图片。

    Comparing the performance of non-nested and nested CV strategies for the Iris dataset using a Support Vector Classifier. You can observe the performance plot below, from this article.

    使用支持向量分类器比较虹膜数据集的非嵌套和嵌套CV策略的性能。 您可以从本文观察下面的性能图。

    Image for post
    Source: Scikit-learn Nested versus non-nested cross-validation 来源:Scikit-learn嵌套与非嵌套交叉验证

    什么是嵌套交叉验证及其实现?(What is Nested Cross-Validation and its Implementation?)

    Nested Cross-Validation (Nested-CV) nests cross-validation and hyperparameter tuning. It is used to evaluate the performance of a machine learning algorithm and also estimates the generalization error of the underlying model and its hyperparameter search.

    嵌套交叉验证( Nested-CV )嵌套交叉验证和超参数调整。 它用于评估机器学习算法的性能,还估计基础模型及其超参数搜索的泛化误差。

    Apart from Nested-CV, there are several CV strategies, read the below-mentioned article to know more about different CV procedures.

    除了Nested-CV,还有几种CV策略,请阅读下面提到的文章,以了解有关不同CV程序的更多信息。

    步骤1:训练测试分组: (Step 1: Train Test Split:)

    Split the given preprocessed dataset into train and test data, the training data can be used to train the model and testing data is kept as isolated to evaluate the performance of the final model.

    将给定的预处理数据集分为训练测试数据,训练数据可用于训练模型,测试数据保持隔离状态以评估最终模型的性能。

    Image for post
    (Image by Author), Split of Data into Train and Test data
    (作者提供的图片),将数据分为训练和测试数据

    This is not a compulsory step, entire data can be used as training data. The split of data into train and test is essential to observe the performance of the model for unseen test data. Evaluating the final model with the test data says the performance of that model for future unseen points.

    这不是强制性的步骤,可以将整个数据用作训练数据。 将数据分为训练和测试对于观察模型的性能(对于看不见的测试数据)至关重要。 用测试数据评估最终模型可以说明该模型在未来看不见的点上的性能。

    第2步:外部简历: (Step 2: Outer CV:)

    A machine learning algorithm is selected based on its performance on the outer loop of nested cross-validation. k-fold cross-validation or StaratifiedKfold procedure can be implemented for the outer loop depending on the imbalance of the data, to equally split the data into k-folds or groups.

    根据其在嵌套交叉验证外循环上的性能来选择机器学习算法。 可以根据数据的不平衡性为外部循环执行k倍交叉验证或StaratifiedKfold过程,以将数据平均分为k倍或组。

    • k-fold CV: This procedure splits the data into k folds or groups. (k-1) groups will be assigned to train and the remaining group to validate data. This step is repeated for k-steps until all the groups participated in the validation data.

      k折CV:此过程将数据分为k折或组。 (k-1)个小组将被分配训练,其余的小组将被验证数据。 重复此步骤k个步骤,直到所有组都参与验证数据。

    • StatifiedKfold CV: This procedure is similar to the k-fold CV. Here the dataset is partitioned into k groups or folds such that the validation and train data has an equal number of instances of target class label. This ensures that one particular class is not over present in the validation or train data especially when the dataset is imbalanced.

      StatifiedKfold CV:此过程类似于k折CV。 在这里,数据集被分为k组或折叠,以使验证和训练数据具有相等数量的目标类标签实例。 这样可确保在验证或训练数据中不会出现一个特定的类,尤其是在数据集不平衡时。

    Image for post
    Left: k-fold cross-validation, 左: k-fold交叉验证, Right: Stratified k-fold cross-validation, Each fold has equal instances of the target class 右:分层k-fold交叉验证,每个折叠具有相同的目标类实例

    k-fold or Stratifiedkfold CV can be selected for outer-CV depending on the imbalance of the dataset.

    可以根据数据集的不平衡性为外部CV选择k倍或Stratifiedkfold CV。

    第3步:内部简历: (Step 3: Inner CV:)

    Then the inner-CV is applied to the (k-1) folds or groups dataset from the outer CV. The set of parameters are optimized using GridSearch and is then used to configure the model. The best model returned from GridSearchCV or RandomSearchCV is then evaluated using the last fold or group. This method is repeated k times, and the final CV score is computed by taking the mean of all k scores.

    然后将内部CV应用于外部CV的(k-1)折或组数据集。 使用GridSearch优化参数集,然后将其用于配置模型。 然后,使用最后的折叠或组评估从GridSearchCV或RandomSearchCV返回的最佳模型。 重复此方法k次,并通过取所有k个分数的平均值来计算最终CV分数。

    步骤4:调整超参数: (Step 4: Tuning hyperparameter:)

    The Scikit-learn package provides comes with GridSearchCV and RandomSearchCV implementation. These searching techniques return the best machine learning model by tuning the given parameters.

    Scikit-learn软件包提供了GridSearchCVRandomSearchCV实现。 这些搜索技术通过调整给定参数返回最佳的机器学习模型。

    步骤5:拟合最终模型: (Step 5: Fit the Final Model:)

    Now you have the best model and set of hyperparameters that perform best for that dataset. You can evaluate the performance of the model for unseen test data.

    现在,您拥有了对该数据集表现最佳的最佳模型和超参数集。 您可以为看不见的测试数据评估模型的性能。

    Python实现: (Python Implementation:)

    Credit Card Fraud Dataset is used in the below implementation downloaded from Kaggle.

    Kaggle下载的以下实现中使用了信用卡欺诈数据集。

    import pandas as pd
    from sklearn.model_selection import KFold, StratifiedKFold, GridSearchCV, train_test_split
    from sklearn.linear_model import LogisticRegression
    
    
    data = pd.read_csv("creditcard.csv")
    y = data["Class"]
    X = data.drop("Class", axis=1)
    
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=7)
    
    
    cv_outer = StratifiedKFold(n_splits=5, random_state=7)
    
    
    for train_idx, val_idx in tqdm(cv_outer.split(X_train, y_train)):
        train_data, val_data = X_train.iloc[train_idx], X_train.iloc[val_idx]
        train_target, val_target = y_train[train_idx], y_train[val_idx]
        
        model = LogisticRegression(random_state=7)
        cv_inner = StratifiedKFold(n_splits=3, random_state=7)
        params = {'penalty': ['l1', 'l2'], 'class_weight': [None, 'balanced'], 'C': [10**x for x in range(-3,5)]}
        gd_search = GridSearchCV(model, params, scoring='roc_auc', n_jobs=-1, cv=cv_inner).fit(train_data, train_target)
        best_model = gd_search.best_estimator_
    
    
        classifier = best_model.fit(train_data, train_target)
        y_pred_prob = classifier.predict_proba(val_data)[:,1]
        auc = metrics.roc_auc_score(val_target, y_pred_prob)
    
    
        print("Val Acc:",auc, "Best GS Acc:",gd_search.best_score_, "Best Params:",gd_search.best_params_)
        
      
      # Training final model
      
    model = LogisticRegression(random_state=7, C=0.001, class_weight='balanced', penalty='l2').fit(X_train, y_train)
    y_pred_prob = model.predict_proba(X_test)[:,1]
    print("AUC", metrics.roc_auc_score(y_test, y_pred_prob))
    print(metrics.confusion_matrix(y_test, y_pred))

    巢式简历的费用:(Cost of Nested-CV:)

    Using Nested-CV dramatically increases the training and evaluation of models. If n*k models are trained for non-nested CV, then the number of models to be trained increases to k*n*k.

    使用Nested-CV可以极大地增加模型的训练和评估。 如果为非嵌套CV训练了n * k个模型,则要训练的模型数将增加到k * n * k。

    结论: (Conclusion:)

    When the same dataset is used to both tune and select a model using CV, it is likely to lead to an optimistically biased evaluation of the model performance. So, Nested-CV is used over non-nested CV because it helps to overcome the bias.

    当使用同一数据集通过CV调整和选择模型时,很可能导致对模型性能的乐观评估。 因此,嵌套CV优于非嵌套CV,因为它有助于克服偏差。

    Using nested-CV dramatically increases the number of model evaluations, and hence increasing the time complexity. It is not recommended when the dataset is too large or your system is not powerful.

    使用嵌套CV会大大增加模型评估的数量,从而增加时间复杂度。 当数据集太大或系统功能不强大时,不建议使用。

    Thank You for Reading

    谢谢您的阅读

    翻译自: https://towardsdatascience.com/nested-cross-validation-hyperparameter-optimization-and-model-selection-5885d84acda

    嵌套交叉验证 输出超参数

    展开全文
  • MySql数据库的关系表、连接方式、嵌套查询以及查询结果的合并 一、关系表(【】为选择性存在语句) 1.一对多关系:在多方表中创建外键关联一方表中的主键 语法:【constraint 外键约束名称】 foreign key(外键...

    MySql数据库的关系表、连接方式、嵌套查询以及查询结果集的合并

    一、关系表(【】为选择性存在语句)

    1.一对多关系:在多方表中创建外键关联一方表中的主键

    语法:【constraint 外键约束名称】 foreign key(外键字段) references 主表名称(主表外键);

    2.一对一关系:在某一方创建“唯一外键”关联另一方

    使用unique关键字创建唯一约束。

    3.多对多关系:通过第三方中间表维护“多对多的关系”,中间表至少需要两个外键字段,分别关联于两个多方表。

    二、连接

    1.等值连接:获取两个表中匹配关系的记录

    select 字段名1,字段名2,... from 表A,表B,... where 连接条件 【其它过滤条件】;

    2.内链接:获取两个表中匹配关系的记录

    select 字段名1,字段名2,... from 表A inner join 表B on 连接条件 【其它过滤条件】;

    3.外连接

    1)左外连接(left join):将左表的数据全部查询出来,右表数据只有满足条件和其它连接条件时才能查询出来。

    select 字段名1,字段名2,... from 表A left join 表B on 连接条件 【其它过滤条件】;

    2)右外连接(right join):将右表的数据全部查询出来,左表数据只有满足条件和其它过滤条件才能被查出来。

    select 字段名1,字段名2,... from 表A right join 表B on 连接条件 【其它过滤条件】;

    三、嵌套查询(子查询)

    子查询的查询结果集经常作为外部查询的条件,应该使用括号将子查询括起来。

    常用关键字有;

    1.in:用来检查字段值是否在子查询结果集中

    2.all:用来判断字段值是否满足子查询结果集中所有的记录

    3.any:用来判断字段值是否满足子查询结果集中任何一条记录

    四、合并查询结果集

    select 字段名1,字段名2,... from 表A union 【all】 select 字段名1,字段名2,... from 表B;

    注:

    1.合并表的字段数量应该一样,对应的数据类型应该匹配。

    2.查询结果集的字段名以第一个表为准,所以排序时应该以第一个表的字段名为标准。

    3.如果查询结果集中包含重复的记录,则union回自动去重,而union all会将所有记录都查询出来。(包括重复记录)

    展开全文
  • 通过嵌套交叉验证选择算法对特定数据进行模型选择
  • UICAL 是日历日期选择器的实现,它使用嵌套函数的强大功能。 UICAL 在颜色甚至语言方面都可以轻松定制。 事实上,您可以轻松添加自己的语言。 享受 ! RES = UICAL() 显示带有今天日期的英文日历被选中。 RES 是...
  • EQL是一种声明式方法,可以对有关数据需求的信息进行分层(可能是嵌套的)选择。 EQL没有自己的语言; 它利用EDN来表达请求,并利用它提供的丰富原语。 1.1。 选择的EQL 一种简单的入门方法是考虑地图并尝试...
  • 网格搜索调优超参数 通过对不同超参数列表进行暴力穷举搜索,并计算评估每个组合对模型性能的影响,以获得参数的最优组合。...从结果可以看出,SVM用于对此数据的未知数据进行分类是一个更好的选择
  • 在visual studio中选择“项目”菜单的添加新项,或者按快捷键Ctrl+Shift+A,弹出添加新项对话框,在模板处选择资源文件,修改名称,如ImageResources.resx,点击添加。如果是windows窗体应用程序,项目有默认的资源...
  • MySQL嵌套查询

    2018-09-09 22:03:55
    嵌套查询 定义:一个内层查询语句(select-from-where)块可以嵌套在另外一个外层查询块的where子句中,其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。子查询一般不使用order by子句,只能对最终...
  • sql嵌套查询

    千次阅读 2017-03-27 09:06:39
    1、sql嵌套查询:一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。嵌套查询的工作方式是:先处理...
  • <html>  <head>  <title>FineReport Demo</title>  ; charset=GBK" /> ... <iframe id="reportFrame" name="reportFrame" width="100%" height="100%" ></iframe> //嵌套报表区域  </body> </html>
  • OpenStack嵌套虚拟,选择多个CPU屏幕出现Guest has not initialized the display (yet) 首先说一下我的OpenStack环境,是一台PC机上安装了Centos7系统,在这个系统上安装KVM虚拟化,虚拟出三台centos7机器,一个作为...
  • spring 嵌套事务

    千次阅读 2018-06-12 20:29:00
    1.嵌套事务,主要是serviceA methodA,调用serviceB methodB的这种情况,method AB均声明了事务的情况。 2.上述外事务调用内事务,异常出现不同位置(外内),以及加上try catch时,数据回滚的具体结果,详细见下面...
  • mysql嵌套语句查询

    万次阅读 2016-08-29 11:32:33
    嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。  嵌套查询的工作方式是...
  • sql语句嵌套查询

    2015-10-25 19:52:11
    SQL嵌套查询  嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 ...
  •  如果简单快速查询是整个程序中最重要的部分,嵌套集是最好的选择,比操作单独的节点要方便快捷很多。然而,嵌套集的插入和移动节点是比较复杂的,因为需要重新分配左右值,如果你的应用程序需要频繁的插入、删除...
  • SQL语句 - 嵌套查询

    千次阅读 2019-10-04 14:29:55
    SQL语句 - 嵌套查询 嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从...
  • SQL语句-嵌套查询

    千次阅读 2018-05-02 09:40:10
    SQL语句 - 嵌套查询 嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 嵌套...
  • ResultMap collection多层嵌套使用

    千次阅读 热门讨论 2019-12-04 23:46:37
    ResultMap collection多层嵌套使用 ResultMap介绍 在Mybatis使用中,ResultMap是最复杂的一种结构,也是功能最强大的结构之一。通过ResultMap能够将复杂的1对多的结果映射到一个实体当中去,可以借助Mybatis来将...
  • 嵌套将高维度数据映射到低维度空间, 可以将语义上相似的不同输入映射到嵌套空间里的邻近处, 以此来捕获输入的语义。 我们马上学三点, 协同过滤电影推荐 输入表示法 深度网络中的嵌套层 大家可以点击下面的...
  • mybatis 高级关联和集合映射:嵌套查询和嵌套结果小案例,帮助更好的理解关联和集合的使用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,826
精华内容 34,730
关键字:

嵌套选择集是什么