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 に答える