1

嘿,伙计们,我正在为考试做一些修改,并通过过去的论文,有人可以告诉我我是否走在正确的轨道上。

考虑下面给出的保险数据库:

person (driver-id, name, address)<br>
car (license, model, year)<br>
accident (report-number, date, location)<br>
owns (driver-id, license) <br>
participated (driver-id, car, report-number, damage-amount)<br>

1) 找出 2004 年发生事故的拥有汽车的总人数。

这是我想出的:

SELECT COUNT(driver-id)
FROM participated
WHERE participated.reportnumber=accident.reportnumber
AND accident.date = 2004

我在正确的轨道上吗?任何帮助,将不胜感激。

4

3 回答 3

5

,这是不对的,您必须参考该accident表:

SELECT COUNT(`driver-id`)
FROM participated
INNER JOIN accident ON  participated.reportnumber = accident.reportnumber
WHERE accident.date = 2004
于 2013-05-20T15:19:58.500 回答
1

您可以使用INNER JOIN并加入事故表

SELECT COUNT(a.driver-id) as total
FROM participated a
LEFT JOIN accident b
ON a.reportnumber=b.reportnumber
WHERE b.date = 2004
于 2013-05-20T15:21:36.350 回答
0
SELECT COUNT(DRIVER_ID) FROM person
WHERE DIVER_ID IN(SELECT DRIVER_ID FROM OWNER WHERE DRIVER_ID IN(SELECT CAR FROM participated WHERE REPORT_NUMBER IN(SELECT DATE FROM ACCIDENT WHERE DATE =2004);
于 2014-01-28T05:24:30.680 回答