我需要比较2个表(领域是代码),并创建第三,当名称匹配或喜欢(与每个表结果)如何比较两个不同表中的相同字段?
表1:名称姓代码年龄
表2:地址城市。 代码
我需要从表1和表2的代码会导致一个新的表看出差别
每场都像a345694s3
文本谢谢。
我需要比较2个表(领域是代码),并创建第三,当名称匹配或喜欢(与每个表结果)如何比较两个不同表中的相同字段?
表1:名称姓代码年龄
表2:地址城市。 代码
我需要从表1和表2的代码会导致一个新的表看出差别
每场都像a345694s3
文本谢谢。
SELECT u.iduser, a.idaccount, u.usercode_user, a.usercode_accounts
FROM users AS u, accounts AS a
WHERE (((a.usercode_accounts) Like "*" & [u].[usercode_user] & "*"));
我不知道,但你可以用where条件.. 前尝试: select * from tab1 t1, tab2 t2 where 't1.code'='t2.code'
如果你得到的结果上面的代码,然后让它作为一个子查询!
如果你想看到哪些码表1中的对比表2,试了FULL OUTER JOIN
SELECT t1.code AS T1, t2.code as T2
FROM table1 t1
FULL OUTER JOIN table t2
ON t1.code = t2.code
结果:
T1 T2
==== ====
A NULL --'A' is in table1 but not table2
NULL B --'B' is in table2 but not table1
C C --'C' is in both tables
编辑
为FULL OUTER JOIN在MS Access中不可用,您可以使用INNER JOIN,LEFT OUTER JOIN和RIGHT OUTER JOIN来实现与0123相同的操作。
在Jet/ACE SQL中没有JOIN形式需要OUTER关键字。您有INNER JOIN,LEFT JOIN和RIGHT JOIN,并且包括OUTER对执行没有影响 - 它只是使SQL更加详细,并且只要保存查询,Jet/ACE就会去掉OUTER。因此,除非您动态地在代码中编写SQL,否则在使用OUTER关键字时没有兼容性好处。 – 2011-01-29 01:19:37
从您的评论中,您希望找到导入不良的任何不匹配的行。我会先找到所有正确导入的匹配行,然后选择该集中不存在的任何内容。
SELECT *
FROM table1
WHERE code NOT IN (
-- find all the matching values of code which imported correctly
SELECT code
FROM table1
JOIN table2 ON table1.code = table2.code
)
这会不会是一个快速查询,但因为它是完整性检查它不需要在生产初期导入后运行,因此速度不是主要问题。
你能解释一些关于`代码`代表什么和表如何相关?你为什么试图比较两组值?你需要什么准确度?他们需要如何“喜欢”?我们应该从字符串的开始还是字符串的任何部分匹配?你如何知道每个表中的哪两行进行比较?除了代码列以外,它们是无关的表,要与table1.code = table2.code相关,它需要完全匹配。 – 2011-01-27 12:25:24
嗨!我需要看看是否在table2中代码被切割(是唯一的代码),因为大量导入格式错误的xls(例如,它会删除第一个0,因为它认为是数字字段)。所以我需要它必须匹配10个字母(字符串的任何部分)。该表不相关。 – stefano 2011-01-27 12:46:23