0
PERSON
DriverID (primary)
DriverName
Address

CAR
RegNO (primary) 
Model 
Year

ACCIDENT
ReportNumber (primary)
AccidentDate
Location

OWNS
DriverID (primary key)  foreign key with PERSON(DriverID)
RegNo (primary Key) foreign key with CAR(RegNo)

PARTICIPATION
DriverID (primary key) foreign key with PERSON (DriverID)
RegNo (primary Key) foreign key with CAR(RegNo)
ReportNumber (primary key) foregin with ACCIDENT(primary)
Damage Amount

クエリは->特定のモデルに属する車が関与した事故の数を見つける

ソルは

SELECT COUNT (a.ReportNumber)
FROM ACCIDENT a
WHERE
a.ReportNumber in ( SELECT pa.ReportNumber FROM PARTICIPATED pa, CAR c
WHERE pa.RegNo = c.RegNo AND c.Model = 'honda');

私の質問は、C ++でネストされたクエリを含む複雑なクエリを理解する方法ですuはブレークポイントを使用してデバッグできますが、mySQLでデバッグする方法はSQLyogを使用し、GROUPを含むすべての基本的なクエリを知っていますが、ネストされたクエリが来ると理解できません

4

1 に答える 1

0

このクエリを単独で実行します。

SELECT pa.ReportNumber FROM PARTICIPATED pa, CAR c
WHERE pa.RegNo = c.RegNo AND c.Model = 'honda'

を見てreportnumbers、心の奥に留めておいてください。

次のクエリを実行します。

SELECT a.ReportNumber FROM ACCIDENT a

したがって、最初のクエリはparticipated'honda' car. reportnumber2 番目のクエリは、 で常に取得しますaccident

それらをまとめると、誰reportnumberから.accidentparticipated'honda'

これがあなたの質問に答えてくれることを願っています。あなたが何を求めているのか完全にはわかりませんでした。

于 2012-12-14T15:03:52.527 に答える