【问题标题】:Query Two Different Table that have same field item查询具有相同字段项的两个不同表
【发布时间】:2013-12-23 20:04:48
【问题描述】:

我有两张桌子

表_A

ID PostId 项目 股票价格 1 1 30 10 2 1 乙 40 20 3 2 50 5 4 3 一个 50 25

表_B

ID PostId Item_ID 售价 1 1 1 2 20 2 1 2 2 40 3 1 1 1 10 4 2 3 3 15 5 2 3 1 5

我想从上面两个表中查询具有相同的“PostID”和 COUNT 并通过“PostID”对某些字段组求和,预期的输出会是这样的

输出

ID PostId Total Item Total Stock Total Buyer(s) Total Sold Total Price 1 1 2 70 3 5 70

我尝试加入它,但结果仍然无法计算

SELECT Table_A.PostId AS PostId, COUNT(Table_A.Item) AS Total_Item, SUM(Table_A.stock) AS Total_Stock, COUNT(Table_B.Item_ID) AS total_buyer, SUM( Table_B.Sold ) AS TotalSold, SUM( Table_B.Price ) AS Total_Price
FROM Table_A
LEFT JOIN Table_B
ON Table_A.PostId = Table_B.PostId
WHERE Table_A.PostId = '1'
GROUP BY Table_A.PostId
LIMIT 0 , 30

对这个查询问题有什么建议吗?谢谢

【问题讨论】:

    标签: sql join


    【解决方案1】:
    SELECT Table_B.PostId AS PostId, 
           MIN(Table_A.Total_Item) AS Total_Item, 
           MIN(Table_A.Total_Stock) AS Total_Stock, 
           COUNT(Table_B.Item_ID) AS total_buyer, 
           SUM( Table_B.Sold ) AS TotalSold, 
           SUM( Table_B.Price ) AS Total_Price
    FROM Table_B
    LEFT JOIN 
    (
    SELECT PostId,
           COUNT(Item) AS Total_Item,
           SUM(stock) AS Total_Stock
    FROM
    Table_A
    GROUP BY PostId
    ) Table_A
    ON Table_B.PostId=Table_A.PostId
    WHERE Table_B.PostId = '1'
    GROUP BY Table_B.PostId
    LIMIT 0 , 30
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      • 2017-08-26
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      相关资源
      最近更新 更多