gpt4 book ai didi

mysql - SQL 计数返回错误结果

转载 作者:行者123 更新时间:2023-11-29 11:10:51 25 4
gpt4 key购买 nike

我想知道满足特定条件的子命令的数量。

我想计算 order_ payment_id 为“3”且状态为已发货的实例数量,但我很难让 SQL 计数函数发挥作用。

—我有第一个查询来在表中显示结果:

SELECT
order_id, order_number, lh45p_users.name, lh45p_hikamarket_vendor.vendor_name, order_status, order_created, order_full_price, order_payment_id
FROM
lh45p_hikashop_order
INNER JOIN
lh45p_hikamarket_vendor ON lh45p_hikashop_order.order_vendor_id = lh45p_hikamarket_vendor.vendor_id
INNER JOIN
lh45p_hikashop_user ON lh45p_hikashop_order.order_user_id = lh45p_hikashop_user.user_id
INNER JOIN
lh45p_users ON lh45p_hikashop_user.user_cms_id = lh45p_users.id
WHERE
order_status = 'shipped' AND order_payment_id = '3'
ORDER BY
lh45p_hikashop_order.order_created ASC

— 这是显示的表格(我更改了一些值以确保 secret 性):

ID | N° de commande | Client | Vendeur | Statut | Date | Prix |
:---: | :---: | :---: | :---: | :---: | :---: | :---: |
111 | 2016-0110 | Client 1 | Vendeur 1 | shipped | 29-02-2016 | 94.8 |
116 | 2016-0115 | Client 2 | Vendeur 2 | shipped | 11-03-2016 | 94.8 |
131 | 2016-0130 | Client 3 | Vendeur 3 | shipped | 10-04-2016 | 94.2 |
136 | 2016-0135 | Client 4 | Vendeur 4 | shipped | 16-06-2016 | 219.6 |
157 | 2016-0156 | Client 5 | Vendeur 5 | shipped | 04-08-2016 | 94.2 |
162 | 2016-0161 | Client 6 | Vendeur 6 | shipped | 09-08-2016 | 108 |
178 | 2016-0177 | Client 7 | Vendeur 7 | shipped | 10-09-2016 | 31.2 |
193 | 2016-0192 | Client 8 | Vendeur 8 | shipped | 18-10-2016 | 31.5 |
194 | 2016-0192 | Client 9 | Vendeur 9 |shipped | 18-10-2016 | 55.4 |
196 | 2016-0195 | Client 10 | Vendeur 10 | shipped | 02-11-2016 | 57.1 |

— 这是计算实例数量的查询(我使用了相同的简化查询,但没有连接):

SELECT
COUNT(order_id) AS nb_order
FROM
lh45p_hikashop_order
WHERE
order_payment_id = '3' AND order_status = 'shipped'

当我在 phpMyAdmin 中使用此查询时,我发现结果为 17,而它应该返回 10。phpMyAdmin 中的表 lh45p_hikashop_order 包含 24 行。当我在 Joomla 中显示结果时,我发现了 21。

我查阅了 stackoverflow 上已经发布的有关此主题的其他问题。

提前致谢

<小时/>

(编辑)解决方案:

我设法纠正了我的错误,我保留了 RiggsFolly 指定的连接。

这是有效的查询:

SELECT
COUNT(order_id) AS nb_order
FROM
lh45p_hikashop_order
INNER JOIN
lh81p_hikamarket_vendor ON lh45p_hikashop_order.order_vendor_id = lh45p_hikamarket_vendor.vendor_id
INNER JOIN
lh45p_hikashop_user ON lh45p_hikashop_order.order_user_id = lh45p_hikashop_user.user_id
INNER JOIN
lh45p_users ON lh45p_hikashop_user.user_cms_id = lh45p_users.id
WHERE
order_status = 'shipped' AND order_payment_id = '3'
ORDER BY
lh45p_hikashop_order.order_created ASC

再次感谢

最佳答案

内连接仅返回匹配的行。
显然,您的表中的某些行在其他表中没有匹配项。

关于mysql - SQL 计数返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40589917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com