2013-01-17 66 views
1

我在執行以下任務時遇到了問題。根據另一列中的記錄在多個列中查找SQL記錄

我有一個顯示我的BOM結構圖 - viewBOMsApprRevisions:

PartNumL1 PartNumL2 PartNumL3 PartNumL4 PartNumL5

,我有一個由選定PartNum表 - 17條記錄,

我想要做的是列表中的所有記錄從PartNum(17條記錄)存在的視圖。

我知道該怎麼做,與單個記錄

SELECT * 
FROM viewBOMsApprRevisions 
WHERE '11614' in (PartNumL1,PartNumL2,PartNumL3, PartNumL4, PartNumL5) 

但我無法弄清楚如何從另一個表使用的記錄列表。

任何幫助非常感謝。

+0

你必須提供一些模式('SHOW CREATE tableName') – Kermit

+0

如果你想從其中一列中存在另一個表中的值的情況下,從您的視圖中獲取記錄,然後您只需在從其他表到另一個表的位置之間添加連接,將您的位置更改爲開,然後將「11614」更改爲另一個表中的列名稱。你是這個意思嗎? –

回答

0

如果我瞭解您的要求,您需要一個基本的join。既然你沒有提供你的表模式,這裏有一個普通的例子:

SELECT  * 
FROM   Table1 
INNER JOIN Table2 ON Table2.SomeKey = Table1.SomeKey 
WHERE   '11614' IN(Table2.PartNumber) 
+0

我想你想要移動'WHERE'子句 – Taryn

+0

@bluefeet,哈哈。這是我得到吃辛辣沙拉**,而寫作SQL ...... –

+0

真的,過濾('WHERE'子句)條件應該(並取決於優化器,可能是反正)成爲'JOIN'的一部分條件。 –

0

嘗試這樣:

SELECT * 
FROM viewBOMsApprRevisions 
WHERE EXISTS (SELECT * from Partnum 
       WHERE Partnum.Partnumber in (PartNumL1,PartNumL2,PartNumL3, 
              PartNumL4, PartNumL5)) 
+0

Ross,非常感謝,這正是什麼我想得到。非常感激。 –

+0

謝謝。請將我的答案標記爲已接受,好嗎? –

相關問題