2

我有一张带有调查表的表格和一张带有小部件的表格。在这两个表之间应该有第三个表连接这两个表。以下正是我正在寻找的。

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(仪表板表的主键)。

问题:

如何根据匹配的dashboard_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 应该来自我打算根据dashboard_id 加入的两个表

此外,是否很难将第 4 列和第 5 列(data_series_name 和 data_series_displaytitle)添加到我正在寻找的插入/连接查询中?

如果您认为我处理这个“链接表”完全错误,请告诉我!我的 SQL 目前真的很生疏,所以我可能只是在做一些愚蠢的事情。

4

1 回答 1

2

有许多不同的可能性,但这里有一个一般的想法:

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_nameand data_series_displaytitle,当然您可以这样做(只需将它们添加到第一行的逗号分隔列表中),但如果您这样做,您必须将一些数据放入这些字段(即,在 SELECT 子句中添加第 3 和第 4 项)——它可以是一个字段,也可以是静态的(将某些内容放在引号中)。

于 2013-03-20T16:31:37.160 回答