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
精彩评论