当我使用Like时,访问卡住了
SELECT ox.*, '+++++++++++' AS judo, sh2.*
FROM OXUS AS ox INNER JOIN Sheet2 AS sh2 ON sh2.ID_P LIKE "*" & ox.ID_P;
如果我使用
SELECT ox.*, '+++++++++++' AS judo, sh2.*
FROM OXUS AS ox INNER JOIN Sheet2 AS sh2 ON sh2.ID_P=ox.ID_P;
立刻打开。
答案 0 :(得分:1)
在这种情况下,您可以使用隐式连接,即WHERE:
SELECT DISTINCT ox.P_ID, '+++++++++++' AS judo, sh2.P_ID
FROM OXUS AS ox, Sheet2 AS sh2
WHERE Instr(sh2.P_ID, ox.P_ID)>0
但是,它仅对查找行有用。
答案 1 :(得分:0)
第一个语句是基于匹配id的表之间的直接连接。我怀疑这也是一个索引。 第二个声明是基于使用通配符来连接表,以检查每个和任何连接到ID的内容(!)。它也可以从int转换为varchar,具体取决于类型....所有不使用索引。
类似的语句总是会更昂贵,因为它们必须单独检查列内容以获得特定匹配。不建议将它们作为加入的一部分使用。
我认为这是对实际问题的削减,因为类似的陈述毫无意义。
你想要达到什么目标?