我有三张桌子。他们三个都有一个主键。一个表就像一个包含事件的枚举。第二个表格提供了有关汽车的一些信息。
所以每当我改变汽车的状态时,我都会在第三张表中放入一个日志。第三个表格提供了carId
和eventId
。
所以如何获得所有从未有过的汽车,例如,事件6。
答案 0 :(得分:1)
我不知道表结构,但我认为你看起来像这样
select * from
CarInformation C
inner join Event E on C.eventId = E.Id
WHERE
NOT EXISTS (SELECT * FROM LogTable WHERE carId = C.id AND eventId = C.eventId)
答案 1 :(得分:0)
表1 - Car_Details(Carid,car_name) 表2 - Event_details(eventid,event_name) 表3 - car_event_details(carid,eventid)
select distinct carid,car_name
from car_details c,
event_Details e,
car_event_details ce
where c.carid = ce.carid
and e.eventid = ce.eventid
and ce.eventid <> 6;
我使用了distinct,因为每次状态更改时都会插入日志,因此如果同一辆汽车多次经历同一状态,则日志表中可能会有多个条目。