我有两个数据库表。我们将第一个称为ItemInfo,将另一个称为ItemStatus。信息是两者中较大的一个,而Status仅使用Info下列出的活动产品创建(Active = 1)。 Info和Status之间只共享两列,即ListID和QtyOnHand。
Status的问题在于,即使已经记录了所有活动项目,但并非所有活动项目都具有正确的Web ID,这些ID位于ItemInfo标记为" WebID的列下。"没有正确ID的项目的ID为0。
我想要做的是在两者之间进行连接,但我不确定要使用哪种连接。我最初认为正确的加入是正确的。我需要ItemStatus中的每一列(因为它包含由脚本计算和插入的统计信息),但只需要那些具有有效Web ID的记录。我知道查询看起来像这样:
SELECT A.*, B.WebID FROM ItemStatus A
(?) JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0
这个想法在那里,但我不确定如何表达它。状态表没有WebID,因为当我最初构建它时,我觉得它有一个列是多余的。我们需要QtyOnHand的原因是因为它的计算方式与对ItemInfo所做的不同。
如何修复此查询?
答案 0 :(得分:0)
我认为你需要正确的加入
SELECT A.*, B.WebID FROM ItemStatus A
LEFT JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0
答案 1 :(得分:0)
你只从B中取]
所以你只需要WebID
- 意味着内部联接;
JOIN
它将一个表中的所有行连接到另一个表中的行,然后应用SELECT A.*, B.WebID FROM ItemStatus A
JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0
条件。因此,返回正数WHERE
所需的行。
希望这有帮助!