我有两个数据库表。我们将第一个称为ItemInfo,另一个称为ItemStatus。Info是两者中较大的一个,并且仅使用Info下列出的活动产品创建状态(其中活动=1)。只有两列在Info和Status之间共享,分别是ListID和QtyOnHand。
Status的问题是,即使所有活动项都已被记录,但并不是所有活动项都具有正确的web ID,该ID位于ItemInfo中标记为“WebID”的列下。没有正确ID的项仅被赋予0的ID。
我想做的是在两者之间执行一个连接,但我不确定使用哪一个。我最初认为右连接是正确的。我需要ItemStatus中的每一列(因为它包含由脚本计算和插入的统计信息),但只需要那些具有有效web id的记录。我知道这个问题会是这样的:

SELECT A.*, B.WebID FROM ItemStatus A
(?) JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0

想法是有的,但我不知道如何表达。Status表没有webid,因为当我最初构建它时,我觉得将它作为一个列是多余的。我们之所以需要QtyOnHand是因为它的计算方式不同于ItemInfo。
如何修复此查询?

最佳答案

你只需要从B取WebID,所以你只需要JOIN——意思是一个内部连接;

SELECT A.*, B.WebID FROM ItemStatus A
JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0

它将一个表中的所有行连接到另一个表中的行,然后应用WHERE条件。因此,返回所需的行,其值为正WebID
希望这有帮助!

10-07 13:39