2011-05-12 49 views

回答

1

加入

SELECT Products.*, COUNT(Buy.ID) AS Bought 
FROM products 
    LEFT OUTER JOIN Buy ON products.ID = Buy.product_id 
GROUP BY Buy.product_id 

子查询

SELECT 
    Products.*, 
    (SELECT COUNT(ID) FROM Buy WHERE product_id = Products.ID) AS Bought 
FROM products 
+0

谢谢!一个侧面问题:关于两者之间的表现的任何想法? – randomguy 2011-05-12 19:23:48

+0

像任何良好的数据库答案,这取决于。通常,JOIN将是最好的选择。我会尝试他们两个,看看执行计划。 – 2011-05-12 19:37:16

1
SELECT p.*,COUNT(b.product_id) FROM products p 
INNER JOIN buy b ON p.id=b.product_id 
GROUP BY b.product_id 

这就是我所能提供的所有信息。如果上述不起作用,两者的表格结构都会有帮助。

+0

伯爵在哪儿? – randomguy 2011-05-12 19:17:41

+0

感谢randomguy。我解决了上述问题。不幸的是无法测试。 – JClaspill 2011-05-12 19:31:12

3

线沿线的东西:

SELECT p.*, COUNT(buy.product_id) FROM product p INNER JOIN buy ON buy.product_id = p.id GROUP BY buy.product_id 

应该做的伎俩。

相关问题