首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为每个项目选择“销售计数”,并在Select "design“options MySql语句中显示为”受欢迎度“?

如何为每个项目选择“销售计数”,并在Select "design“options MySql语句中显示为”受欢迎度“?
EN

Stack Overflow用户
提问于 2015-06-06 11:12:03
回答 1查看 48关注 0票数 1

我有两张桌子:销售和设计

我想从设计表中选择设计,然后从每个设计的销售表中包含流行的设计计数,然后显示每个设计的设计名称、属性和流行度计数。如果没有一个设计的销售,我们仍然必须显示设计,即流行将为零。

示例:设计一,名称,属性:(受欢迎程度计数)

此Mysql语句选择所有设计:

代码语言:javascript
复制
SELECT * FROM `designs`
WHERE status=1
ORDER BY priority ASC

这个MySql语句从sales中选择流行的设计:

代码语言:javascript
复制
SELECT COUNT( `design` ) AS designCount,
designs.id,
designs.title
FROM `sales`
INNER JOIN designs ON sales.design = designs.id
WHERE design != ''
AND paid =1
GROUP BY design
ORDER BY designCount DESC 

我希望将这2合并成一个语句,在其中,我可以检索所有可用设计的设计信息,并简单地将每个设计的流行度添加到每一行结果。

我的表模式如下:

designs表: id、标题、designName、描述、designVoucher、主题、值、优先级、dateUploaded、dateUpdated、状态

sales表:id,姓名,姓氏,电子邮件,电话,设计,date_purchase,付费

我尝试过这样做,但它只返回每一行的总受欢迎结果:

代码语言:javascript
复制
SELECT * , (
    SELECT COUNT( * ) AS popCount
    FROM sales
    INNER JOIN designs ON sales.design = designs.id
    WHERE sales.design = designs.id
    AND paid =1
) AS popularity
FROM `designs`
WHERE status =1
EN

回答 1

Stack Overflow用户

发布于 2015-06-06 11:33:35

希望它能工作,LEFT JOIN也将包括那些尚未售出的设计。

代码语言:javascript
复制
SELECT Design.*, COUNT(Sale.id) saleCount 
FROM designs Design LEFT JOIN sales Sale 
    ON Design.id = Sale.design AND Sale.paid = 1
GROUP BY Design.id
ORDER BY Design.priority
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30682099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档