SQL查询没有取得一切

时间:2012-04-20 20:22:18

标签: sql database

我正在尝试从两个表中获取数据,但它似乎没有提取符合条件的所有记录。

这是我的疑问:

SELECT Parts."Part Number",Parts."Description",Parts."Location",Parts."Qty In Stock",Parts."LastCost",Parts."Cost Price",Parts."Retail Price",Transact."Type"
FROM Transact
INNER JOIN Parts
ON Transact."PartNumber"=Parts."Part Number"
WHERE Transact.Type = 'Non-stock Purch'

我正在尝试将每个记录中包含“非库存净化”的记录,然后从部件数据库中提取该部分的描述,这就是为什么我要包含'描述','成本','最后成本'等。

我在查询中做错了什么意味着它不会获取所有需要的信息,如果我运行:

select * from transact x
where x.Type = 'Non-stock Purch'
order by x.PartNumber

这将返回268条记录,我之前的查询应该返回相同的数字,但实际上只返回111,我知道它们存在于另一个表中,因为它们必须(我已经检查过了)案件出了问题))。

如果我错误地写了这些查询或格式不正确,请告诉我!

感谢。

2 个答案:

答案 0 :(得分:1)

部件表可能没有Transact表中记录的匹配记录。你在做INNER JOIN;如果在Transact中的记录中出现零件号的零件中没有记录,则不会返回任何行。

如果您想要Transact中的所有记录,以及来自Parts的数据(如果存在),您可以进行LEFT JOIN;如果没有匹配,则Parts中的所有列都将为null。

答案 1 :(得分:0)

我认为您的表可能没有Transact表中记录的匹配记录。