Внутренний SQL-запрос на присоединение (извините, не знаю, как кратко описать) - PullRequest
2 голосов
/ 07 сентября 2011

Я считаю, что это будет чрезвычайно простой вопрос.Настолько просто, что я буду смущен.Несмотря на это, я пытался выяснить это некоторое время, так что я в своем уме.Вот сценарий с использованием производителей автомобилей (например, Toyota) и моделей автомобилей (например, Prius, Sienna).

SELECT * FROM car_manufacturer man
INNER JOIN car_model cm ON cm.manufacturerid = man.manufacturerid

Простой, верно?

Теперь я хотел бы вернуть строку дляКаждый производитель, у которого для некоторого логического значения установлено значение true (скажем, car_manufacturer.is_awesome) И производит более одной модели.

Я пытаюсь использовать подзапрос с select count (*), но не могу понять это.

Пожалуйста, помогите!

Ответы [ 3 ]

4 голосов
/ 07 сентября 2011
SELECT man.*
FROM   car_manufacturer man
WHERE  is_awesome = 1
       AND manufacturerid IN (SELECT manufacturerid
                             FROM   car_model
                             GROUP  BY manufacturerid
                             HAVING COUNT(DISTINCT model_name/*whatever*/) > 1)  
1 голос
/ 07 сентября 2011

Попробуйте это:

SELECT * 
  FROM car_manufacturer man INNER JOIN 
       (
        SELECT manufacturerid  
          FROM car_model 
         GROUP BY manufacturerid  
        HAVING COUNT(1) > 1
       ) cm 
    ON cm.manufacturerid = man.manufacturerid 
   AND man.is_awesome = 1
0 голосов
/ 07 сентября 2011
SELECT man .manufacturerid 
From car_manufacturer man INNER JOIN car_model car  ON man.manufacturerid = car.manufacturerid 
AND is_awesome = 1
Group by (car  .manufacturerid )
HAVING COUNT(car  .manufacturerid ) > 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...