从一个表中选择某些列,从MySQL中的另一个表中选择一个计数

时间:2015-02-25 00:39:45

标签: mysql

我已经检查了类似问题的一些答案,但仍然无法做到正确。

我有两个表,Stock-DetailsGoods-In。两个表都有一个ID主键。与它们匹配的列值为PrimarySKUStock-DetailsSKUGoods-In中)。

所以,我的第一个查询可能是:

"SELECT `id`,`Nominal`,`OnOrder`,`PrimarySKU` FROM `Stock-Details`
    WHERE 'Nominal` < '10'"

我的第二个问题是:

"SELECT COUNT FROM `Goods-In`
    WHERE `UsedByOrderNumber`=''
    AND `SKU`= `PrimarySKU` (From My First Table.)"

如何将这些组合成一个快速查询,该查询将为Stock-Details中的所有列以及Goods-InUsedByOrderNumber为空或使用的行的计数提供或任何?

1 个答案:

答案 0 :(得分:0)

您可以通过获取SKU的计数来实现此目的,其中UsedByOrderNumber在子查询中为空,然后将其连接到您的Stock-Details表:

SELECT
    t1.id,
    t1.nominal,
    t1.onorder,
    t1.primarySku
    t2.recordcount

FROM
    stock-details t1
    LEFT OUTER JOIN 
        (
            SELECT 
                SKU, 
                count(*) as recordcount 
            FROM Goods-In 
            WHERE UsedByOrderNumber IS NULL 
            GROUP BY SKU
        ) t2 ON
    t1.primarySku = t2.SKU
WHERE   
    t1.Nominal < 10