我有两张相同的 table 。我想比较这两个表并从中得到结果。条件是:
表 1 中按 TID 分组的每条记录都将与表 2 中按每个 TID 分组的所有记录进行比较。
如果要在 TABLE2 中发现 TABLE1 中的每个分组记录(TABLE2 中也按每个 tid 分组的记录),则多达 N 个(N 是用户输入变量) ,那么该记录将被插入到新表中。
例如下面的ss,按TID 2分组的ITEM C-F-A在table2中出现了3次,因此它们将被插入到新表中:
我已经尝试为此编写代码并且它有效(vb.net),但是编译器需要花费荒谬的时间才能完成。主要原因是我正在处理一个巨大的数据库。
我在程序中完成的方法是将两个表填充到二维数组中。为数组赋值,同时使用 if 子句
比较两个元素。
下面是我创建的二维数组:
但这种方法确实很昂贵,上图中我的真实数据库是第一个 2d 数组有 2k 条记录,第二个 2d 数组有 800 条记录,当我尝试计算编译的估计时间时完成后,它显示了一个惊人的数字,大约 16 小时..天哪!!
所以我想知道,这个问题是否可以通过mysql查询来解决, 或者其他比我所做的更有效的方法?
最佳答案
INSERT INTO tbl3
SELECT tbl1.TID, tbl1.ITEM
FROM tbl1
JOIN tbl2 ON tbl2.TID = tbl1.TID AND tbl2.ITEM = tbl1.ITEM
这将为 tbl1 中的每条记录插入一条记录到 tbl3 中,该记录在 tbl2 中具有由 TID 和 ITEM 标识的对应记录。
这假设 TID/ITEM 是 tbl1 和 tbl2 中的唯一索引。
关于mysql从两个相同的表中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316034/