2013-01-17 45 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

谢谢。请将我的答案标记为已接受,好吗? –

相关问题