我有三个单独的内部连接语句,每个语句创建一个表.我可以将这三者结合起来做一个主表吗?



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

--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';

您可以使用 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'

我建议这种简化:

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是数字,则应从值列表中删除单引号。

最新更新