我有两张桌子:销售和设计
我想从设计表中选择设计,然后从每个设计的销售表中包含流行的设计计数,然后显示每个设计的设计名称、属性和流行度计数。如果没有一个设计的销售,我们仍然必须显示设计,即流行将为零。
示例:设计一,名称,属性:(受欢迎程度计数)
此Mysql语句选择所有设计:
SELECT * FROM `designs`
WHERE status=1
ORDER BY priority ASC这个MySql语句从sales中选择流行的设计:
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,付费
我尝试过这样做,但它只返回每一行的总受欢迎结果:
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发布于 2015-06-06 11:33:35
希望它能工作,LEFT JOIN也将包括那些尚未售出的设计。
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.priorityhttps://stackoverflow.com/questions/30682099
复制相似问题