如何轻松连接表 Microsoft SQL Server?

Posted

技术标签:

【中文标题】如何轻松连接表 Microsoft SQL Server?【英文标题】:How to join tables easily Microsoft SQL Server? 【发布时间】:2010-07-29 08:48:00 【问题描述】:

我有两个用于类别的单独表格。

一个是Categories(ID, Title, Description),另一个是SubCategories(ID, UpperID, Title, Description)

我想将类别中的记录插入到upperID=0 的子类别中。我看过 SQL SELECT INTO,但不知道如何将它用于现有表。

【问题讨论】:

您想维护类别的初始 ID 吗?如果是这样,它们是否不存在于 SubCategories 中? 我想加入这些表,因为我希望能够为数据库中的另一条记录(如果它是工厂)设置类别或子类别 ID 【参考方案1】:
Insert Into dbo.SubCategories (UpperId, Title, Description)

Select 0, Title, Description
From dbo.Categories

这假定两个表中的 ID 列都是 Identity 列,并且不应将 Categories 中的 ID 转移到 SubCategories 表中

【讨论】:

添加到答案中,如果您也想传递 ID(并且它与现有密钥不冲突),请使用 SET IDENTITY_INSERT SubCategories ON 我打算添加它,但由于我不是 100% 确定 OP 想要什么,我决定将其省略以避免混淆。不过,这仍然是一个很好的观点。 使用:INSERT INTO dbo.Categories (UpperId, Title, Description) SELECT UpperID, Title, Description FROM dbo.SubCategories;因为子类别有来自类别的 ID,所以现在我不需要更改 catID :)【参考方案2】:
INSERT INTO SubCategories(ID, UpperID, Title, Description)

SELECT ID, 0, Title, Description FROM Categories

假设 Id 不是 Identity 字段。

【讨论】:

-,这会给你一个 mssql 错误......!看看巴里的答案(语法正确) 不......如果你在谈论身份,那么我已经解释过了。 不...这与身份无关...这只是您的无效语法:INSERT INTO TABLE (Column1, Column2, ...) VALUES (SubSelect) 无效。它必须声明INSERT INTO TABLE (Column1, Column2, ...) SubSelect

以上是关于如何轻松连接表 Microsoft SQL Server?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac(或 Linux)上连接/运行 Joomla 到远程 Microsoft SQL 服务器/与远程 Microsoft SQL 服务器连接/运行?

即使使用 PySpark 存在表,如何写入 Microsoft SQL Server 表

如何在 Microsoft SQL Server 中制作非数值表的数据透视表?

如何在 iPhone 中连接 Microsoft SQL 服务器?

Microsoft Access SQL 查询中的字符串连接问题

如何将表单绑定到 Microsoft Access 中的 SQL 语句