gpt4 book ai didi

mysql - 子请求 MySQL

转载 作者:行者123 更新时间:2023-11-30 23:25:20 24 4
gpt4 key购买 nike

我尝试执行的子请求被阻止,但我不知道该怎么做。我有 4 张 table :

  • jos_vm_products => 存储的所有产品
  • jos_vm_order_items => 订单中的项目
  • jos_vm_order => 一个订单
  • stock_web_brut => 我的产品库存

我想获取特定产品的所有信息:

  • 库存数量(完成)
  • 表jos_vm_products中的产品信息(完成)
  • 特定产品处于“待定”状态(已阻止)的订单数量

这是我的第一个请求:

SELECT  `product_id` ,  `product_weight` ,  `cdate` ,  `mdate` ,  `product_name` ,  `product_sales` ,  `product_sku` ,  `product_in_stock` , SUM( stock_bloque ) AS  'stock_bloque', SUM( stock_total ) AS  'stock_total', SUM( stock_vente ) AS  'stock_vente', ref
FROM jos_vm_product t1
INNER JOIN `stock_web_brut` t2 ON t1.product_sku LIKE CONCAT( t2.ref, '%' )
GROUP BY product_id;

我想我应该做这样的子请求:

SELECT 

(
SELECT COUNT(t5.product_id)
FROM jos_vm_product t5
INNER JOIN jos_vm_order_item t6 ON t5.product_id = t6.product_id
WHERE order_status = 'P' AND t5.product_id = 12
) AS "nombre_produit_pending",
`product_id` ,
`product_weight` ,
`cdate` , `mdate` ,
`product_name` ,
`product_sales` ,
`product_sku` ,
`product_in_stock` ,
SUM( stock_bloque ) AS 'stock_bloque',
SUM( stock_total ) AS 'stock_total',
SUM( stock_vente ) AS 'stock_vente',
ref
FROM jos_vm_product t1
INNER JOIN `stock_web_brut` t2 ON t1.product_sku LIKE CONCAT( t2.ref, '%' )
GROUP BY product_id

而不是 « 12 »,我想我应该做这样的事情:

WHERE order_status = 'P' AND t5.product_id = t1.product_id

但是我有一个循环

这是表格:http://kai23.fr/myam.svg (我不能发布图片)

对于结果,它会是这样的:

`product_id` | [...] | 'number_of_orders_in_pending_for_this_product' |
12 | [...] | 15
13 | [...] | 5
14 | [...] | 3

如果有人有想法。

开23

最佳答案

在这种情况下,您使用子选择有点不对。在 left outer join 中使用子选择,如下所示:

SELECT 
`nombre_produit_pending`.`count`
`product_id` ,
`product_weight` ,
`cdate` , `mdate` ,
`product_name` ,
`product_sales` ,
`product_sku` ,
`product_in_stock` ,
SUM( stock_bloque ) AS 'stock_bloque',
SUM( stock_total ) AS 'stock_total',
SUM( stock_vente ) AS 'stock_vente',
ref
FROM jos_vm_product t1
INNER JOIN `stock_web_brut` t2 ON t1.product_sku LIKE CONCAT( t2.ref, '%' )
LEFT OUTER JOIN (select count(t5.product_id) as count, t5.product_id as pid FROM jos_vm_product t5
INNER JOIN jos_vm_order_item t6 ON t5.product_id = t6.product_id
WHERE order_status = 'P'
) AS nombre_produit_pending ON nombre_produit_pending.pid = t1.product_id
GROUP BY product_id

附言!我没有检查你的数据库结构和查询,我只是复制了你自己的不同顺序的查询,所以如果你从 mysql 中得到任何错误,我可以帮你解决它们:)

重点是子选择应该查询所有挂单并按 ID 对它们进行分组(返回 2 个值:idcount),因此您使用它的 id 加入子结果,并且应该将各自的计数作为一个值。

关于mysql - 子请求 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622837/

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