0

我有两个表(mysql),这些字段:

第一张表ps_cart_product

  • id_cart,
  • id_product,
  • quantity(这是一个数字字段,包含订购的产品数量)
  • ...

第二张表ps_product

  • id_product,
  • reference,
  • ...

我需要获取“数量”字段,该字段包含(给定第一个表中的某个 id_cart)为在第二个表值“票”中具有“参考”字段的每个产品订购的数量。然后我必须对返回行的字段值进行“求和”。

这是我拥有的 sql 代码:

SELECT DISTINCT cp.quantity
FROM ps_cart_product cp 
JOIN  ps_product p ON cp.id_cart = 84
AND p.reference = "ticket"

结果是错误的......这个查询抛出所有字段(3行)具有值为'ticket'的字段,而不是只给出具有'AND'条件的2个字段,这是我想要的结果。有什么建议吗?无论如何,这是一个 Prestashop 数据库。

4

2 回答 2

0

您需要在末尾包含 where 子句以指定 ID。连接的目的是根据 where 子句中给定的值在相同记录上匹配表。

SELECT DISTINCT cp.quantity
FROM ps_cart_product cp 
INNER JOIN  ps_product p ON cp.id_cart = p.id_product
AND p.reference = "ticket"
Where cp.id_cart = 84
于 2013-03-17T18:38:28.700 回答
0

您当前的查询缺少JOIN两个表之间的条件。

select DISTINCT cp.quantity
from ps_cart_product cp
inner join ps_product  p
  on cp.id_product = p.id_product -- < this is missing
where p.reference = 'ticket'
  and cp.id_cart = 84

然后如果你想要sum()数量,你可以使用:

select sum(cp.quantity) TotalQuantity
from ps_cart_product cp
inner join ps_product  p
  on cp.id_product = p.id_product
where p.reference = 'ticket'
  and cp.id_cart = 84
于 2013-03-17T18:37:09.300 回答