【发布时间】:2017-10-10 18:57:49
【问题描述】:
我正在使用 php mySql 构建一个电子商务系统,但我不知道如何 LEFT JOIN 三个表。
我需要所有商店商品的列表,添加每个商品的浏览量和销售额
TABLE #1 - store_sales
---------------
itemID | date
--------------
TABLE #2 - store_views
--------------
itemID | date
--------------
TABLE #3 - store_items
---------------------------------
itemID | itemName
---------------------------------
RESULT
-----------------------
itemID | itemName | COUNT(store_sales) | COUNT(store_views)
EXAMPLE:
-----------------------
itemID | itemName | COUNT(store_sales) | COUNT(store_views)
1 PHONE 3 45
2 BOOK 5 61
我的代码有错误:
SELECT
a.itemID ,
b.itemID ,
c.itemID ,
COUNT(if(a.itemID = c.itemID , a.itemID , NULL)) AS views ,
COUNT(if(b.itemID = c.itemID , b.itemID , NULL)) AS sales
FROM store_views a
LEFT JOIN store_sales b
ON a.itemID = b.itemID
LEFT JOIN store_items c
ON a.itemID = c.itemID
WHERE 1=1
GROUP BY itemID
【问题讨论】:
-
你没有 store_sales 和 store_views 的主键吗?
-
不,每次有人访问商店商品时,它都会使用商品 ID 和时间戳创建一条新记录。 store_sales 也是如此
标签: php mysql database join e-commerce