我需要你的帮助。我正在实施一个小型电子商务网站并执行两个查询以获得如下结果:
我的数据库表' cart'
id itemid qty price customerid
1 item1 1 2500 1
2 item2 1 11000 1
我需要得到' item1'价格,所以我使用以下查询
SELECT qty, price FROM cart WHERE itemid='item1';
我还需要根据customerid获取所有商品价格的总和,以便我使用以下商品。
SELECT SUM(price) AS totalprice, COUNT(*) AS totalitems FROM cart WHERE customerid='1';
如何使用php mysql中的mysql_query()一次执行查询来获得两个结果;
提前致谢!
答案 0 :(得分:1)
您可以使用UNION ALL
操作消除从PHP到MySQL的两次往返中的一次,并将数据放在几行中。
SELECT 'item' name, itemid item, qty, price FROM cart WHERE itemid='item1'
UNION ALL
SELECT 'count', customerid, COUNT(*), 0 FROM cart WHERE customerid='1'
或者您可以使用an aggregate WITH ROLLUP
汇总您的购物车。
SELECT customerid, item, SUM(qty) qty, SUM(price) price, COUNT(*) items
FROM cart
GROUP BY customerid, item WITH ROLLUP
WHERE customerid ='1'
这将返回一个以customerid的摘要行结束的结果集。这可能是你想要的。
必须要说的是:只消除一个额外的php< - > MySQL往返可能不值得你的开发工作。
答案 1 :(得分:0)
如果你只是建立一个小网站,你可以使用一个丑陋的解决方法;实现一个包含每行总和的子查询;像这样:
SELECT
qty, price,
(SELECT SUM(price) FROM cart WHERE customerid='1') as totalprice,
(SELECT COUNT(*) FROM cart WHERE customerid='1') AS totalitems
FROM
cart
WHERE
itemid='item1';