想知道是否有人可以帮助我。我有两张桌子。表 A 包含数百万行,我查找整个表,表 B 包含大约 5 万行,我再次查找整个表。我正在使用以下查询:
SELECT t1.ID as [ID], count(*) as [Total]
FROM table1 t1
RIGHT JOIN table2 t2 ON t1.data LIKE '%' + t2.field3 + '%'
AND t1.ID = t2.ID
WHERE t1.ID not LIKE ''
GROUP BY t1.ID, t1.datetime
我使用右连接的原因是,据我了解,它将从 t2 中获取所有记录(我想要),并且只从 t1 中获取与它们匹配的记录。另外,我在 SELECT 语句中添加了“AND t1.ID = t2.ID”,因为我认为这会加快查询速度(不查找与 t2 中的 ID 不匹配的 ID),尽管这可能会被否定正确的加入,除非我的逻辑完全错误。
另外,如果我能解释一下 JOIN 背后的逻辑——table1 中的数据列包含很多“东西”,其中某处应该正是 t2.field3 中的内容,例如 t1.data = '^ABCD^00dasdas ^£ldasl32^XL0005^' 和 t2.field3 将包含 'XL0005'。
任何帮助表示赞赏。
谢谢