编写MySQL查询:统计符合多属性条件的主表卖家数量
符合需求的MySQL查询语句
没问题,我来帮你搞定这个统计需求~首先先明确下默认的表结构(如果你的实际表名/字段不同,直接替换对应名称即可):
- 卖家主表:
sellers,包含字段seller_id(卖家唯一标识)、name、address - 车辆属性表:
car_attributes,包含字段car_id、seller_id(关联卖家主表的ID)、color、year、price
下面就是满足所有条件的查询语句:
SELECT COUNT(DISTINCT s.seller_id) AS qualifying_sellers_count FROM sellers s JOIN car_attributes ca ON s.seller_id = ca.seller_id WHERE s.address = 'Columbus' AND ca.color = 'RED' AND ca.year = 2015 AND ca.price < 15000;
几个关键点解释
- 用
JOIN关联卖家表和车辆属性表,通过seller_id把卖家和他的待售车辆关联起来 COUNT(DISTINCT s.seller_id)很重要:如果一个卖家有多辆符合条件的车,这个写法能确保他只被统计一次,不会重复计数- 所有过滤条件都放在
WHERE子句里,同时筛选出地址在Columbus的卖家,以及颜色为RED、2015年生产、价格低于15000的车辆
要是你的表关联逻辑不一样(比如用卖家姓名而不是ID关联),只需要修改JOIN里的关联字段就行——不过还是更推荐用唯一ID作为关联键,既高效又能避免重名带来的错误。
内容的提问来源于stack exchange,提问作者Brian Douglas
相关产品推荐
相关产品推荐

