我有两个表1.category 2.产品表。我想要一个类别下的总产品,一个作者类别下的总子产品,最后在产品下创建产品或子产品以及创建日期。优化MySQL查询
我的查询工作象下面这样:
SELECT c.category_id,c.title,c.type,c.alias,
(SELECT COUNT(product_id)
FROM products
WHERE parent_type='main'
AND category_id=c.category_id
AND is_active=1
) as total_main_products,
(SELECT count(product_id)
FROM products
WHERE parent_type IN('subtypeL1','subtypeL2','subtypeL3')
AND category_id=c.category_id
AND is_active=1
) as total_sub_products,
DATE_FORMAT(
(SELECT FROM_UNIXTIME(created) as update_time
FROM products
WHERE parent_type='main'
AND category_id=c.category_id
ORDER BY update_time desc limit 1
),'%b %d,%Y at %r'
)as last_updated,
(SELECT user_id
FROM products
WHERE parent_type='main'
AND category_id= c.category_id
ORDER BY created desc limit 1
) as updated_by
FROM category c
WHERE c.type=1
AND c.is_active=1
ORDER BY c.created DESC
寻找的讨论,这是正确的&有效的方式来编写查询或我们有任何其他方式来获得相同的result.I试图JOIN的选择,但没有返回正确的结果。
任何帮助或建议将大大appriciated。
感谢
要有**得到帮助的任何**的希望,你要格式化您的查询 - 得到一些换行和在那里缩进 – Bohemian
我第二@Bohemian。我已经做了一些免费的格式化。下一次我会寄给你账单;) – Romain
谢谢@Bohemian&Romain – coder