如何在Access中加入

时间:2014-02-02 10:28:48

标签: sql ms-access join

我有三张桌子,想要按如下方式加入: 表格是客户,车辆和提醒。客户在Customer_Id加入Vehciles,车辆加入Vehicle_ID上的提醒。我想显示来自客户和车辆的记录,这些记录要么具有提醒的记录,其中字段MOT是<> Y或在提醒中没有记录。 我的SQL是:

SELECT Customer.Title, Customer.[First Name], Customer.Initials, Customer.[Last Name],
 Vehicles.RegNo, Vehicles.Make, Vehicles.Model, Vehicles.MOT, Reminders.MOT, Reminders.MOT_date
FROM 
(Customer 
INNER JOIN Vehicles 
ON Customer.[Customer Id] = Vehicles.[Customer Id]) 
INNER JOIN Reminders 
ON Vehicles.[Vehicle ID] = Reminders.[Vehicle_ID]
WHERE Reminders.MOT <>"Y";

这显示没有结果,但我有一条记录,这三条记录在Reminders.MOT中都是空白,而且在提醒中没有记录的客户和车辆中有多条记录。

1 个答案:

答案 0 :(得分:1)

尝试此查询。我认为r.MOTReminders不可为空 所以下面的r.MOT is null表示提醒 记录不存在。

    select distinct 
    c.Title, c.[First Name], c.Initials, c.[Last Name], 
    v.RegNo, v.Make, v.Model, v.MOT, r.MOT, r.MOT_date
    from
    (Customer c
    inner join Vehicles v on c.Customer_Id = v.Customer_Id)
    left join Reminders r on v.Vehicle_ID = r.Vehicle_ID
    where
    (r.MOT is null)
    or
    (r.MOT <> 'Y')