我有一个包含调查的表格和一个包含小部件的表格。在这两个表之间应该有第三个表连接这两个表。以下正是我正在寻找的内容。
Survey:
survey_id numeric(18, 0) Unchecked Primary Key
dashboard_id numeric(18, 0) Unchecked Foreign Key
survey_title nvarchar(250) Unchecked
Widget:
widget_id numeric(18, 0) Unchecked Primary Key
dashboard_id numeric(18, 0) Checked Foreign Key
这两个表具有共同的dashboard_id(仪表板表的主键)。
问题:
如何根据匹配的仪表板 ID 连接这两个表,并将这个新表插入到我的第三个表中。如何将上述表的两个主键放入新的第三个表中,如下所示:
Survey_link_widget:
survey_link_widget_id numeric(18, 0) Unchecked
survey_id numeric(18, 0) Unchecked
widget_id numeric(18, 0) Unchecked
data_series_name nvarchar(250) Unchecked
data_series_displaytitle nvarchar(250) Checked
survey_link_widget_id 自动递增,它将自行创建。 Survey_id和widget_id应该来 self 打算根据dashboard_id加入的两个表
此外,将第四列和第五列(data_series_name 和 data_series_displaytitle)添加到我正在查找的插入/连接查询中会很困难吗?
如果您认为我处理这个“链接表”的方式完全错误,请告诉我!我的 SQL 目前确实很生疏,所以我可能只是在做一些愚蠢的事情。
最佳答案
有多种不同的可能性,但以下是适合您的一般想法:
INSERT INTO Survey_link_widget (survey_id, widget_id)
SELECT
survey_id,
widget_id
FROM
Survey INNER JOIN Widget ON Survey.dashboard_id = Widget.dashboard_id
除此之外,您询问是否添加 data_series_name
和 data_series_displaytitle
,当然您可以这样做(只需将它们添加到第一行的逗号分隔列表中即可),但如果你这样做,你将不得不将一些数据放入这些字段中(即,将第三项和第四项添加到 SELECT 子句中)——这可以是一个字段,也可以是静态的(将某些内容放在引号中) .
关于sql - 如何执行连接两个现有表的部分并将其插入新表的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15529206/