我有三个单独的内部连接语句,每个都创建一个表。我可以将所有三个组合成一个主表吗?

时间:2018-01-12 11:54:09

标签: sql solidworks

如何让以下内容出现在同一个表格中?是否有某种联接将它们串在一起?或者我可以将每个表声明为变量然后串起来吗?

--Description
SELECT Documents.Filename , VariableValue.ValueText, VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '56';

--Status
SELECT Documents.Filename , VariableValue.ValueText, VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '46';

--Revision
SELECT Documents.Filename , VariableValue.ValueText, VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '45';

2 个答案:

答案 0 :(得分:2)

您可以使用INSERT INTO和UNION ALL组合

CREATE TABLE tableName (Filename  VARCHAR(50),ValueText VARCHAR(50), VariableID INT);


INSERT INTO tableName
SELECT Documents.Filename , VariableValue.ValueText, 
VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '56'

UNION ALL

SELECT Documents.Filename , VariableValue.ValueText, 
VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '46'

UNION ALL

SELECT Documents.Filename , VariableValue.ValueText, 
VariableValue.VariableID
FROM Documents
INNER JOIN VariableValue ON Documents.DocumentID = VariableValue.DocumentID
where RIGHT(filename,6) = 'SLDDRW' and VariableID = '45'

答案 1 :(得分:1)

我建议这种简化:

SELECT d.Filename, vv.ValueText, vv.VariableID
FROM Documents d INNER JOIN
     VariableValue vv
     ON d.DocumentID = vv.DocumentID
WHERE filename LIKE '%SLDDRW' and VariableID IN ('56', '46', '45');

注意:如果VariableID是数字,那么您应该从值列表中删除单引号。