我有三个单独的内部连接语句,每个语句创建一个 table。我可以把这三个结合起来做一个大师 table 吗?
I have three seperate inner join statements each creating a table. Can i combine all three to make a master table?
如何让以下内容出现在同一个 table 中?是否有某种连接将它们串在一起?或者我可以将每个 table 声明为变量然后串在一起吗?
--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
是数字,则应从值列表中删除单引号。
如何让以下内容出现在同一个 table 中?是否有某种连接将它们串在一起?或者我可以将每个 table 声明为变量然后串在一起吗?
--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
是数字,则应从值列表中删除单引号。