我有2个表格,购物车和产品。用户可以从产品表中选择产品,然后将其详细信息添加到购物车表中。我想结合这两个表的值,并给出了结果连接2个表格和显示数据的值
prodsize的列表
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,谁能告诉PLZ我如何修改下面的代码,从而获得所需结果
$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我已经试过了,但它不是干活 – pp1989
读一点点接近,我认为你需要一个CASE表达式来处理一些有条件的逻辑IB您的输出。 – shawnt00