我尝试使用Access进行查询,它会返回非常意外的结果(它会返回来自contacts表的记录,这些记录甚至不会出现在temp_query中:
SELECT contacts.names_1, contacts.names_2, contacts.addresses, contacts.cities, contacts.us_states_and_canada, contacts.zip_codes
FROM contacts, temp_query
WHERE
(((temp_query.first_name) Like "*" & [contacts].[names_1] & "*")
AND ((temp_query.last_name) Like "*" & [contacts].[names_1] & "*"))
OR
(((temp_query.first_name) Like "*" & [contacts].[names_2] & "*")
AND ((temp_query.last_name) Like "*" & [contacts].[names_2] & "*"));
我认为上述内容是有意义的,因为temp_query的first_name和last_name中的字符串可以位于联系人的name_1中,而temp_query的first_name和last_name可以位于联系人的name_2中。但我不认为first_name可以在name_1中,last_name在name_2中,反之亦然。
有人推荐了这个,但最终只返回了一条记录,它应该至少返回70(更不用说查询花了35分钟才能得到结果):
Criteria: (in first_name column): Like "*" & [contacts].[name1] & "*" (in last_name column) like "*" & [[contacts].[name2] & "*"
Or: (in first_name column): Like "*" & [contacts].[name2] & "*" (in last_name column) Like "*" & [[contacts].[name1] & "*"
所以我不确定什么应该是预期效果的正确标准。
答案 0 :(得分:2)
你知道SQL吗?在SQL视图中打开查询并在那里编辑它可能会更好。
然后,当您返回到设计视图时,设计视图中的字段将自动反映您在SQL视图中放置的内容,以查看您缺少的内容。
答案 1 :(得分:1)
我认为这就是你要找的东西。您可以将其粘贴到SQL视图
中SELECT contacts.names_1, contacts.names_2, contacts.addresses, contacts.cities, contacts.us_states_and_canada, contacts.zip_codes
FROM contacts, temp_query
WHERE
(
contacts.names_1 Like "*" & temp_query.first_name & "*"
and
contacts.names_1 Like "*" & temp_query.last_name & "*"
)
OR
(
contacts.names_2 Like "*" & temp_query.first_name & "*"
and
contacts.names_2 Like "*" & temp_query.last_name & "*"
)
;
当contacts.name_1位于first_name和last_name中或者contacts.name_2位于first_name和last_name中时,您的原始where子句正在查找。