Php mySQL连接三个表-电子商务项目、视图和销售
我正在使用php mySql构建一个电子商务系统,我不知道如何左键连接三个表 我需要一个所有商店物品的列表,添加每个物品的浏览量和销售额Php mySQL连接三个表-电子商务项目、视图和销售,php,mysql,database,join,e-commerce,Php,Mysql,Database,Join,E Commerce,我正在使用php mySql构建一个电子商务系统,我不知道如何左键连接三个表 我需要一个所有商店物品的列表,添加每个物品的浏览量和销售额 TABLE #1 - store_sales --------------- itemID | date -------------- TABLE #2 - store_views --------------
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
我的代码有错误:
您可以在子选择中分别获取销售和视图的计数,然后与项目表进行左连接,使用COALESCE跳过计数的空记录
SELECT
a.itemID ,
COALESCE(b.item_sales,0),
COALESCE(c.item_views,0)
FROM store_items a
LEFT JOIN (
SELECT itemID,COUNT(*) as item_sales
FROM store_sales
GROUP BY itemID
) b ON a.itemID = b.itemID
LEFT JOIN (
SELECT itemID,COUNT(*) as item_views
FROM store_views v
GROUP BY itemID
) c ON a.itemID = c.itemID
您可以在子选择中分别获取销售和视图的计数,然后与项目表进行左连接,使用COALESCE跳过计数的空记录
SELECT
a.itemID ,
COALESCE(b.item_sales,0),
COALESCE(c.item_views,0)
FROM store_items a
LEFT JOIN (
SELECT itemID,COUNT(*) as item_sales
FROM store_sales
GROUP BY itemID
) b ON a.itemID = b.itemID
LEFT JOIN (
SELECT itemID,COUNT(*) as item_views
FROM store_views v
GROUP BY itemID
) c ON a.itemID = c.itemID
您没有商店销售和商店视图的主键吗?没有,每次有人访问商店商品时,它都会使用商品id和时间戳创建一个新记录。store_sales也是如此。store_sales和store_View没有主键吗?没有,每次有人访问商店商品时,它都会使用商品id和时间戳创建一个新记录。商店销售也是如此