我有 3 个列表,我在这里将它们简单化。
字母列表
A
B
C
数字列表
1
2
3
Mixed
A,1
A,2
B,2
B,3
C,1
C,3
我需要知道缺少什么:
A,3
B,1
C,2
字母列表大约有 85 个条目
号码列表大约有 500 个条目。
混合列表约有 75,000 个条目。
我可以使用数据库查询 (mysql 5.0) 或 Turbo Delphi 2006 来处理文本文件。找到丢失的东西的最佳方法是什么?
Thanks,
Dave
假设您的两个列表都在 SQL 表中,交叉联接将生成所有组合:
SELECT
Letter + ',' + Number AS Combination
FROM
NumberList,
LetterList
使用组合结果(也许将其保存到临时表中),您可以使用 NOT EXISTS 查询来查找丢失的内容:
SELECT
Combination
FROM
AllCombinations AS a
WHERE
NOT EXISTS
(SELECT 1 FROM MyCombitations AS m WHERE m.Combination = a.Combination)
这需要一张桌子MyCombitations
,其中列出了您实际拥有并想要对照完整列表进行检查的所有组合。
如果你想加快速度,你应该使用永久的组合表和索引MyCombitations.Combination
场地。对于重复查询,这绝对是可取的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)