交并与拼接 =============== 交并用于根据连接条件组合两个视图中的行。 交并语法 ^^^^^^^^^ .. code-block:: sql merge leftView, rightView [方法] [条件] 交并 ``[方法]`` 有:``inner`` (默认), ``cross``, ``left``, ``semi``, ``anti``, ``right``, ``full``。 交并 ``[条件]`` 与传统 SQL JOIN ``ON`` 后的关联表达式一样,如果不带关联表达式则会自动查找名称相同的列进行关联,有多少个相同就关联多少个。 .. code-block:: lua merge view1, view2 cross { view1.product_id=view2.product_id and .. }; -- 自动查找相同的列进行关联,且关联方法默认为 inner merge view1, view2; 拼接 --------- 与交并不同,它只是简单通过行或列拼接形成新的视图。 拼接语法 ^^^^^^^^^^ .. code-block:: sql align [方式] viewName1, viewName2, .. [option method='inner'] 拼接 ``[方式]`` 有:``row``、``col``,默认按列拼接,即按照相同列名追加在前一个视图的后面。 按行拼接 ``method`` 有:``inner`` (默认), ``cross``, ``outer``, ``full``, ``fullouter``, ``full_outer``, ``left``, ``leftouter``, ``left_outer``, ``right``, ``rightouter``, ``right_outer``, ``semi``, ``leftsemi``, ``left_semi``, ``anti``, ``leftanti``;默认 ``inner`` 按列拼接 ``method`` 有:``position`` (默认), ``name``;同时按列还有一个选项 ``allowMissingColumns`` ='true'|'false':列是否允许缺失值 按行拼接 ^^^^^^^^^^ 不需要指定关联主键,自动生成待拼接视图的行索引进行关联。 .. code-block:: sql align row df1, df4 option method='inner' .. image:: ./_static/merging_concat_axis1_join_axes.png 按列拼接 ^^^^^^^^^^ .. code-block:: sql align col df1, df2 .. image:: ./_static/merging_append1.png .. code-block:: sql align col df1, df4 option method='name', allowMissingColumns=true .. image:: ./_static/merging_append2.png