[英]MySQL join query for two tables
我有兩個數據庫表。 我們將第一個稱為ItemInfo,將另一個稱為ItemStatus。 信息是兩者中的較大者,並且狀態僅使用信息下列出的活動產品(其中活動= 1)創建。 信息和狀態之間僅共享兩列,即ListID和QtyOnHand。
Status的問題在於,即使已記錄所有活動項目,但並非所有活動項目都具有正確的Web ID,該Web 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
這個想法在那里,但我不確定如何表達。 Status表沒有WebID,因為當我最初構造它時,我覺得把它作為一列是多余的。 我們需要QtyOnHand的原因是因為它的計算方式與對ItemInfo所做的方式不同。
如何解決此查詢?
我認為你需要正確的加入
SELECT A.*, B.WebID FROM ItemStatus A
LEFT JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0
您僅從B獲取WebID
,因此只需要JOIN
意味着內部JOIN
;
SELECT A.*, B.WebID FROM ItemStatus A
JOIN ItemInfo B
ON A.ListID = B.ListID
WHERE B.WebID > 0
它將一個表中的所有行連接到另一表中的行,然后應用WHERE
條件。 因此,請使用正WebID
返回所需的行。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.