1. 首页 >  小程序定制 >  表和数据连接,而不是和表连接(JOIN)

表和数据连接,而不是和表连接(JOIN)

1、连接数据,但是顺序会受影响

  • 在使用JOIN连接临时表或子查询时,无法保证结果的顺序与特定值的顺序完全一致。这是因为在查询过程中,数据库优化器可能会选择不同的执行计划,导致结果的顺序发生变化。

    SELECT TABLE_NAME.* FROM TABLE_NAME JOIN ( SELECT ‘AA’ AS ID UNION ALL SELECT ‘BB’ AS ID UNION ALL SELECT ‘CC’ AS ID ) AS temp_table ON TABLE_NAME.ID = temp_table.ID;

2、连接数据,按照连接的数据排序

  • 在下面的示例中,我们在临时表(或子查询)temp_table中添加了一个sort_order列,用于指定特定值的顺序。通过在最后的ORDER BY子句中按照sort_order列进行排序,我们可以确保结果按照特定值的顺序输出。

  • 请注意,这里的sort_order列的值需要与特定值的顺序一致,并且需要根据实际情况进行调整。

    SELECT TABLE_NAME., temp_table. FROM TABLE_NAME JOIN ( SELECT ‘AA’ AS ID, 1 AS sort_order UNION ALL SELECT ‘BB’ AS ID, 2 AS sort_order UNION ALL SELECT ‘CC’ AS ID, 3 AS sort_order ) AS temp_table ON TABLE_NAME.ID = temp_table.ID ORDER BY temp_table.sort_order;

3、Mybatis的配置(循环)

    <select id="methodName" resultType="java.lang.String">
        SELECT
            TABLE_NAME.NAME
        FROM TABLE_NAME
            JOIN
             <foreach collection="ids" item="id" index="index" open="(" close=")" separator=" UNION ALL ">
                 SELECT #{id} AS ID, ${index} AS sort_order
             </foreach>
            AS temp_table
        ON TABLE_NAME.ID = temp_table.ID
        ORDER BY temp_table.sort_order;
    </select>

/xiao-cheng-xu-ding-zhi/biao-he-shu-ju-lian-jie-er-bu-shi-he-biao-lian-jie-join-1197.html