【发布时间】:2015-10-19 22:56:07
【问题描述】:
我有 2 张桌子、购物车和产品。用户可以从产品表中选择产品,然后将其详细信息添加到购物车表中。我想要一个结合这两个表的值并给出结果的列表
产品尺寸
id catid catname productid prodsize cost prodname
1 2 CN1 13 small 130 P1
2 2 CN1 13 large 200 P1
3 2 CN1 14 small 50 P2
4 2 CN1 14 medium 90 P2
5 2 CN1 14 large 110 P2
6 2 CN1 12 small 70 P3
7 2 CN1 12 medium 110 P3
8 2 CN1 13 medium 200 P1
购物车
id catid catname userid productid prodname prodsize prodcost quantity status
1 2 CN1 1 13 P1 small 130 2 add_to_cart
1 2 CN1 1 13 P1 large 200 2 order_placed
当我从两个表中运行以下查询组合值时,但在这里我希望只显示状态为 add_to_cart 的那些产品数量,如果状态为 order_placed 则数量应为 0,谁能告诉我如何我修改以下代码以获得所需的结果
$sql= "SELECT p.catid, p.catname, p.productid, p.prodimg, GROUP_CONCAT(p.prodsize ORDER BY p.id ASC) as size, GROUP_CONCAT(p.cost ORDER BY p.id ASC) as cost, p.prodname,
GROUP_CONCAT(c.prodsize,'-',c.quantity) as cart_details, GROUP_CONCAT(DISTINCT(c.userid)) as user_id
FROM productsize p
LEFT JOIN cart c ON(c.productid = p.productid AND c.userid = '$userid' AND p.prodsize = c.prodsize)
WHERE p.catid ='$catid'
GROUP BY p.productid
ORDER BY user_id DESC, p.productid ASC";
【问题讨论】:
-
在查询中添加
where子句。 -
@Gordon Linoff 我试过了,但它不起作用
-
仔细阅读,我认为您需要一个案例表达式来处理您的输出中的一些条件逻辑。