如何创建一个查询两个或多个值?

时间:2013-06-25 16:11:11

标签: sql

如果我可以提供以下代码,我需要:

CREATE TABLE `car` (                                     
          `car_id` int(10) unsigned NOT NULL auto_increment,      
          `car_name` varchar(25) NOT NULL,                    
          `car_year` date NOT NULL,                       
          PRIMARY KEY  (`user_id`)                                 
) ENGINE=InnoDB;
CREATE TABLE `people` (                                                                                              
             `peo_id` int(10) unsigned NOT NULL auto_increment,                                                                    
             `peo_name` varchar(50) NOT NULL,                                                                                      
             `peo_surname` varchar(200) NOT NULL,                                                                                      
             `car_id` int(10) unsigned NOT NULL,                                                                                  
             PRIMARY KEY  (`fav_id`),                                                                                              
             KEY `FK_Favorites` (`user_id`),                                                                                       
             CONSTRAINT `FK_Favorites` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`) ON DELETE CASCADE ON UPDATE CASCADE  
) ENGINE=InnoDB;

我有疑问,显示所有超过3人的汽车按年订购。 非常感谢,抱歉我的英文不好

2 个答案:

答案 0 :(得分:1)

SELECT 
    c.car_id
    ,c.car_year
    ,COUNT(p.peo_id)
FROM car c
INNER JOIN people p on c.card_id = p.car_id
GROUP BY    c.car_id ,c.car_year
HAVING  COUNT(p.peo_id) > 3
ORDER BY c.car_year

答案 1 :(得分:0)

首先,查找超过三人的汽车数量

select car_id
from people
group by car_id
having count(*) > 3

现在,获取汽车详情

select * from car
where car_id in
(
 select car_id
    from people
    group by car_id
    having count(*) > 3
)
order by car_year