使用SQL中的公共键将两个表/添加列连接到原始表

栖息地

我敢肯定这很简单,但是使用谷歌搜索就可以找到没有通用密钥的方法。我有一栏充满了公用密钥(在本例中为provider_num)

基本上,我的第一个表(称为“ s10”)如下所示:

provider_num | provider_name | state | phone_number`

10001        | johns creek   | ga    | 555-5555`

第二个是这样的(称为“ hs”)

provider_num | latitude | longitude | IDS_num

10001        | -89.0023 | -82.4729  | stn0021

我想用一张看起来像这样的桌子结束

provider_num | provider_name | state | phone_number | latitude | longitude | IDS_num

这可能吗?

到目前为止,我只写了一个像这样的简单插入

INSERT INTO s10
hs.latitude, hs.longitude, hs.IDS_num
where s10.provider_num = hs.provider_num

但是我想知道在运行它之前是否缺少某些东西,例如s10中的预定义列,等等。

提前致谢

迈克尔·伯考斯基(Michael Berkowski)

您不能s10在同一SQL语句中同时创建列和填充它们的值。首先,您需要ALTER TABLE添加一个以添加列,然后使用UPDATE(使用INNER JOIN)来填充它们:

-- s10 already exists, but with limited columns
-- Add the other columns (use the correct data types - I just guessed here)
ALTER TABLE s10
  ADD latitude DECIMAL(10,2) [NULL or other attrs],
  ADD longitude DECIMAL(10,2) [NULL or other attrs],
  ADD IDS_num VARCHAR(32);

添加相关列后,执行UPDATE带有联接的(使用文档中描述的“多表”语法):

UPDATE s10 INNER JOIN hs ON s10.provider_num = hs.provider_num
  SET 
    s10.latitude = hs.latitude,
    s10.longitude = hs.longitude,
    s10.IDS_num = hs.IDS_num;

另一种解决方案是将两个表保持原样,然后创建一个视图来查询两个表:

CREATE VIEW combined_tables AS (
  SELECT
    s10.provider_num,
    provider_name,
    state,
    phone_number,
    latitude,
    longitude,
    IDS_num
  FROM 
   s10 
   INNER JOIN hs ON s10.provider_num = hs.provider_num
);

但是如果hs仅包含由所标识的实体的其他属性provider_num,则hs通过将两者合并为来消除表是有意义的s10

还有另一种方法是CREATE TABLE AS SELECT通过查询其他表来创建新表(SELECT在视图中使用相同的表):

CREATE TABLE s10_combined AS 
 SELECT
    s10.provider_num,
    provider_name,
    state,
    phone_number,
    latitude,
    longitude,
    IDS_num
  FROM 
   s10 
   INNER JOIN hs ON s10.provider_num = hs.provider_num;

上面产生了一个新表s10_combined,之后您可以删除其他两个表。考虑到所有这些方案虽然,我只想坚持与第一和执行ALTER之后UPDATE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用SQL中的公共键将两个表/添加列连接到原始表

来自分类Dev

连接没有公共列的两个表,但使用连接到两个表的另一个表

来自分类Dev

将两个表,多行连接到单行中的不同列

来自分类Dev

从SQL中的两个表中添加两列

来自分类Dev

如何联接2个表并使用两个表中的公共列选择特定列

来自分类Dev

SQL连接具有两个公共列的两个表-日期时间问题

来自分类Dev

将表A中的两个外键列与表B中的主键列相关

来自分类Dev

将表联接到SQL Server中的两个一对多关系表

来自分类Dev

合并SQL中的两个表和一个公共列

来自分类Dev

SQL将带有关键字的两个表连接到不同的列

来自分类Dev

将两个表连接到Ruby / Rails活动记录中

来自分类Dev

将一条线的两个端点连接到点表中的两个点

来自分类Dev

如何通过使用主外键连接两个表?

来自分类Dev

MySQL:使用具有公共基表的外键的两个表表达完全连接

来自分类Dev

如何在复杂查询中使用 linq 将一个表连接到另外两个表?

来自分类Dev

将具有更多连接的两个表连续连接到同一表

来自分类Dev

如何使用第三个表连接没有公用列的两个SQL表,该表包含两个表的列

来自分类Dev

使用 Pivot 将两个表的行转换为 SQL Server 中的列

来自分类Dev

将两个表连接到一个参考表 Laravel

来自分类Dev

无法将两个外键添加到表中

来自分类Dev

连接两个表并添加另一列SQL

来自分类Dev

将一个表中的两列连接到另一引用表中的列

来自分类Dev

将一个表中的两列连接到另一引用表中的列

来自分类Dev

从两个不同的表中添加两列

来自分类Dev

在仅两个公共列的基础上连接 2 个表(具有 3 个公共列)

来自分类Dev

SQL连接两个表并检查两个表中每个值的存在

来自分类Dev

linq-sql连接两个表并选择列

来自分类Dev

linq-sql连接两个表并选择列

来自分类Dev

在PL SQL中显示时,如何使用选择查询显示两个表中的数据,并将数据连接到一个单元格中?

Related 相关文章

  1. 1

    使用SQL中的公共键将两个表/添加列连接到原始表

  2. 2

    连接没有公共列的两个表,但使用连接到两个表的另一个表

  3. 3

    将两个表,多行连接到单行中的不同列

  4. 4

    从SQL中的两个表中添加两列

  5. 5

    如何联接2个表并使用两个表中的公共列选择特定列

  6. 6

    SQL连接具有两个公共列的两个表-日期时间问题

  7. 7

    将表A中的两个外键列与表B中的主键列相关

  8. 8

    将表联接到SQL Server中的两个一对多关系表

  9. 9

    合并SQL中的两个表和一个公共列

  10. 10

    SQL将带有关键字的两个表连接到不同的列

  11. 11

    将两个表连接到Ruby / Rails活动记录中

  12. 12

    将一条线的两个端点连接到点表中的两个点

  13. 13

    如何通过使用主外键连接两个表?

  14. 14

    MySQL:使用具有公共基表的外键的两个表表达完全连接

  15. 15

    如何在复杂查询中使用 linq 将一个表连接到另外两个表?

  16. 16

    将具有更多连接的两个表连续连接到同一表

  17. 17

    如何使用第三个表连接没有公用列的两个SQL表,该表包含两个表的列

  18. 18

    使用 Pivot 将两个表的行转换为 SQL Server 中的列

  19. 19

    将两个表连接到一个参考表 Laravel

  20. 20

    无法将两个外键添加到表中

  21. 21

    连接两个表并添加另一列SQL

  22. 22

    将一个表中的两列连接到另一引用表中的列

  23. 23

    将一个表中的两列连接到另一引用表中的列

  24. 24

    从两个不同的表中添加两列

  25. 25

    在仅两个公共列的基础上连接 2 个表(具有 3 个公共列)

  26. 26

    SQL连接两个表并检查两个表中每个值的存在

  27. 27

    linq-sql连接两个表并选择列

  28. 28

    linq-sql连接两个表并选择列

  29. 29

    在PL SQL中显示时,如何使用选择查询显示两个表中的数据,并将数据连接到一个单元格中?

热门标签

归档