PHP/MySQL的计数订单
这里是数据库表:PHP/MySQL的计数订单
$sql[2] = "SELECT u.* , oi.* , COUNT(oi.user_id) AS count
FROM users u, order_items oi
WHERE u.id=oi.user_id ";
$result3= mysqli_query($conn,$sql[2]) or die(mysqli_error());
if (mysqli_num_rows($result3) > 0) {
while ($record = mysqli_fetch_array($result3)) {
echo $record['count'];
}
}
我想算多少才能有充分的用户。例如:像托马斯有3个命令,但我的代码是写4,我想写Thomas(3),Gracian(1)。任何想法如何解决它?
使用此查询:
SELECT u.id,
COUNT(oi.user_id) AS orderCount
FROM users u
LEFT JOIN order_items oi
ON u.id = oi.user_id
GROUP BY u.id
我们从order_items
表数user_id
的原因是因为该商品的特定用户没有订单的边缘情况。在这种情况下,我们要确保他的计数显示为零。 COUNT
函数忽略NULL
,这就是我们想要的。
有使用子查询来执行SQL查询另一种方式:
SELECT id, email, address, name, (SELECT count(user_id) FROM order_items WHERE user_id = users.id) AS orderCount FROM users;
以及如果我想从另一个表格(产品)添加一行,最新情况。想从产品表中找到ID,然后输入p.ID = oi.product_id(order_items) –
@FaragoRoland您想要什么产品的属性?它也数过吗? – SaidbakR
号我有另一个表(产品:ID,product_name,价格),我想要获得数量(从order_items)*价格(从产品表)。例如:5 * 20 = 100(如5订购商品*价格(20 /每件)) –
见http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve - 对于什么似乎对我来说是一个非常简单的SQL查询 – Strawberry
请使用格式化文本,而不是图像。另外,使用该样本数据,预期的结果是什么? – jarlh
结果是:4(即所有,我认为它的行数) –