2016-03-26 19 views
0

Çoğu modele hangi araçların karıştığını seçmek istiyorum. Aşağıdaki sorguyu kullanıyorum ama bir sözdizimi hatası alıyorum. sorun ne Birisi lütfen bana ..Alt Sorguna Sahip Olmak MySql

select car.Model 
    from car 
    join car_accident_involved 
     on car.Car_Registration_ID = car_accident_involved.Car_Registration_ID 
    group by car.Model 
    having MAX(
     select COUNT(Car_Registration_ID) 
     from car_accident_involved 
    ); 
+0

Sözdizimi hatasının neye neden olduğunu veya sorgunun neye neden olduğunu bilmek ister misiniz? – Strawberry

+0

İsterseniz, bu basit, iki aşamalı eylemi takip etmeyi düşünün: 1. Henüz yapmadıysanız, CREATE ve INSERT ifadelerini (ve/veya bir sqlfiddle) sağlayın, böylece sorunu daha kolay çoğaltabiliriz. 2. Henüz yapmadıysanız, 1. adımda sağlanan bilgilere karşılık gelen istenen bir sonuç kümesi belirtin. – Strawberry

cevap

1

Burada örneğin basit bir alt sorgusu kullanabilirsiniz:

select model from car 
where car_registration_id = 
(select car_registration_id 
    from car_accident_involved 
    group by model 
    order by count(car_registration_id) desc 
    limit 1); 
1

GROUP BY için bir koşul deyimi edilir HAVING. Sorgunuz
HAVING deyiminde herhangi bir koşul olmadığından hata oluşuyor. Benim için A, alt sorguya gerek yoktur. Aşağıdaki gibi daha basit bir sorguyu deneyin:

SELECT c.model,COUNT(a.car_registration_id) AS Num_of_accidents FROM car c 
INNER JOIN car_accident_involved a ON c.car_registration_id=a.car_registration_id 
GROUP BY c.model ORDER BY Num_of_accidents DESC LIMIT 1; 
İlgili konular