我有三张桌子,想要按如下方式加入: 表格是客户,车辆和提醒。客户在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中都是空白,而且在提醒中没有记录的客户和车辆中有多条记录。
答案 0 :(得分:1)
尝试此查询。我认为r.MOT
中Reminders
不可为空
所以下面的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')