开发者

Inner join SQL query (Sorry, not sure how to succinctly describe)

I believe this will be an extremely simple question. So simple that I am going to be embarrassed. Regardless, I have been trying to figure this out for a while so I'm at my wits end. Here is the scenario using car manufacturers (ie Toyota) and car models (ie Prius, Sienna).

SELECT * FROM car_manufacturer man
INNER JOIN car_mo开发者_JS百科del cm ON cm.manufacturerid = man.manufacturerid

Simple, right?

Now I'd like to return a row for each manufacturer that has some Boolean set to true (Lets say car_manufacturer.is_awesome) AND makes more than one model.

I'm trying to use a sub query with select count(*) but can't figure this one out.

Please help!


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)  


Try this:

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


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜