【发布时间】:2011-05-20 05:28:43
【问题描述】:
我有两张桌子。一个称为 prem 并包含系统中存在的所有 id,而 JimsQueryByColl 则包含大多数这些 id 以及附加的各种信息。我正在尝试创建一个查询,其中将包含 prem 中的所有 id,以及 JimsQueryByColl 中的所有记录,其中 JimsQueryByColl.Collector = "Frederick Road"。我当前的查询如下,但只给出了信息的后半部分(没有来自 prem 的 id,这些 id 没有出现在收集器列中 Frederick Road 的 id 列表中):
选择 Prem.meter_miu_id, JimsQueryByColl.*, Prem.longitude, Prem.latitude
从 Prem 左加入 JimsQueryByColl ON Prem.meter_miu_id = JimsQueryByColl.[MIU ID]
在哪里 (((JimsQueryByColl.Collector)="弗雷德里克 路"))
通常,Left Join 会实现我想要的,但 where 语句使除了 *Prem.meter_miu_id* 字段之外的所有内容都具有空白信息的 id 不包括在内。我试图在 WHERE 语句中添加“or JimsQueryByColl.Collector IS NULL”,但没有得到正确的结果。
我目前用于获取正确信息的两种查询方法名为 FredrickRoad 和 Query3:
弗雷德里克路-
选择 JimsQueryByColl.* FROM JimsQueryByCol 在哪里 (((JimsQueryByColl.Collector)="弗雷德里克 路"))
随后是 Query3 -
选择 Prem.meter_miu_id, JimsQueryByColl.*, Prem.longitude, Prem.latitude FROM Prem LEFT JOIN JimsQueryByColl ON Prem.meter_miu_id = JimsQueryByColl.[MIU ID] WHERE (((JimsQueryByColl.Collector)="弗雷德里克 路"));
但如果可能的话,我想一步一步完成。我希望我已经写清楚了,如果有人需要澄清,请询问。
当前解决方案
选择 Prem.meter_miu_id, JimsQueryByColl.*, Prem.longitude, Prem.latitude
进入弗雷德里克路 从 Prem 左加入 JimsQueryByColl ON (Prem.meter_miu_id = JimsQueryByColl.[MIU ID]
AND JimsQueryByColl.Collector="弗雷德里克
路”)
这解决了我在查询中遇到的奇怪错误/错误,因为它将查询放入表中并且不再直接处理查询。但是,我很想知道是什么导致了我遇到的问题。
【问题讨论】:
标签: sql ms-access-2007