我有两张桌子。车辆和所有权。我正在尝试进行查询,该查询将为我提供不在 OWNERSHIP 表中的所有 VEHICLES的列表。我基本上需要一份关于我的可用车辆库存的报告。我试过这个查询:
SELECT VEHICLE.*
FROM VEHICLE, OWNERSHIP
WHERE (VEHICLE.VEH_ID <> OWNERSHIP.VEH_ID);
我越来越:
当我做平等时,我会得到所有权中列出的所有车辆,这样就可以了。但是 NOT Equal 没有。有任何想法吗?
我有两张桌子。车辆和所有权。我正在尝试进行查询,该查询将为我提供不在 OWNERSHIP 表中的所有 VEHICLES的列表。我基本上需要一份关于我的可用车辆库存的报告。我试过这个查询:
SELECT VEHICLE.*
FROM VEHICLE, OWNERSHIP
WHERE (VEHICLE.VEH_ID <> OWNERSHIP.VEH_ID);
我越来越:
当我做平等时,我会得到所有权中列出的所有车辆,这样就可以了。但是 NOT Equal 没有。有任何想法吗?
尝试
SELECT VEHICLE.*
FROM VEHICLE
WHERE NOT EXISTS
(SELECT NULL FROM OWNERSHIP WHERE VEHICLE.VEH_ID= OWNERSHIP.VEH_ID);
如果您的表包含许多行,则该NOT EXISTS
方法可能会很慢。另一种更快的方法是使用LEFT JOIN
withWHERE
子句仅返回右侧连接字段为 Null 的行。
SELECT VEHICLE.*
FROM
VEHICLE AS v
LEFT JOIN OWNERSHIP AS o
ON v.VEH_ID = o.VEH_ID
WHERE o.VEH_ID Is Null;
您可以使用 Access 的“查找不匹配的查询向导”来创建类似的查询。
如果两张桌子都很小,您可能不会注意到差异。但是应该很容易检查差异是否明显。如果您的表格随着时间的推移大幅增长,这种方法将为您提供更好的服务。