在没有唯一键的情况下联接来自两个表的数据

哈库巴

我在一个数据库(访问文件)中有两个表。

表1

| Product Id |  Year     | Sales |
----------------------------------
| 1144       |  2013     | 100   |
| 20131120   |  2013     | 200   |
| 1144       |  2012     | 333   |

表2

| Product Id     |  Category     |
----------------------------------
| 1144           | Car           |
| 20131120       | Motorbike     |

第一个表(表1)是用户可以随时添加新数据的表,第二个表在出现新产品ID时不定期更新。我想加入该表,并基于产品ID建立某种关系,但是由于缺少唯一的主键,我无法使用关系,对吗?当我执行SQL查询(SELECT * FROM Table 1)时,我想得到如下结果:

| Product Id |  Year     | Sales | Category   |
-----------------------------------------------
| 1144       |  2013     | 100   | Car        |
| 20131120   |  2013     | 200   | Motrobike  |
| 1144       |  2012     | 333   | Car        |

我知道我可以加入这两个表,但是当用户向表1中添加新数据时我不想每次都这样做。您知道任何解决方案我该怎么做吗?

马哈茂德·加马尔(Mahmoud Gamal)

由于缺少唯一的入门密钥,我无法使用关系,对吗?

不,这不对,通常可以使用JOIN两个表。JOIN对于具有所谓合格数据类型的任何列上的两个表或结果集,也是合法的

SELECT
  t1.ProductId, t1.year, t1.sales, t2.category
FROM table1 AS t1
INNER JOIN table2 AS t2 ON t1.productId = t2.productId;

但是我不希望每次用户向表1添加新数据时都这样做

你并不需要ProductId在第二个表,你需要一个CategoryId代替,并添加一个新列CategoryId到第一台过,并宣布它作为一个外键。您的表应如下所示:

Table1 (产品)

  • ProductId
  • CategoryId
  • Year
  • Sales

Table2 (类别):

  • CategoryId
  • CategoryName

然后将类别一次添加到类别表table2,将产品一次添加到产品表table1并为每个产品输入一个CategoryId所谓的标准化

您还应该在表ProductId1和CategoryID表2中将其定义为主键,CategoryID在第一个表中将其定义为外键。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在没有键的情况下联接两个相等的数据集

来自分类Dev

在没有公用键的情况下联接多个表

来自分类Dev

联接表上2列的唯一键

来自分类Dev

MySQL如何在没有公用键的情况下联接3个表

来自分类Dev

SQL如何在以下情况下联接两个表以获取记录?

来自分类Dev

基于Spark中的功能在没有公共密钥的情况下联接两个RDD

来自分类Dev

MySQL:MySQL表中的两个不同值被视为相同(无法设置唯一键)

来自分类Dev

匹配来自两个表的人口统计信息,没有唯一标识符

来自分类Dev

使用FK连接来自两个表的数据

来自分类Dev

有没有一种方法可以从一个表中全部选择,并在可能的情况下联接?

来自分类Dev

如何在没有公共密钥的情况下联接2个表并随机生成第二个表的行

来自分类Dev

流口水者的规则是在没有评估的情况下联系两个事实

来自分类Dev

如何在没有唯一键警告的情况下使用React渲染Material UI网格

来自分类Dev

如何在SQL中列不匹配的情况下联接两个表

来自分类Dev

在没有获取不匹配记录的情况下联接表

来自分类Dev

连接来自两个表的数据

来自分类Dev

在没有公用键的情况下联接多个表

来自分类Dev

MySQL查询从两个表中检索数据,即使没有找到数据,两个表中的唯一列

来自分类Dev

在2个条件下联接两个表

来自分类Dev

MySQL在非唯一列上并在带有时间戳条件的情况下联接2个表

来自分类Dev

如何在没有多个列表的情况下联接3个表?

来自分类Dev

MySQL从表中选择数据并内部联接来自另外两个相同表的所有选择

来自分类Dev

在不使用基于级联键的联接的情况下,在Power Pivot中合并来自两个单独表的数据

来自分类Dev

如何在可能不会发生的情况下联接两个表?

来自分类Dev

我们可以在没有任何公共密钥的情况下联接两个表吗?

来自分类Dev

在Oracle中没有相同键的情况下联接两个表

来自分类Dev

在没有通用ID的情况下联接三个表#MySQL

来自分类Dev

比较两个没有唯一键的表

来自分类Dev

SQL Merge 连接来自两个不同数据库的两个表

Related 相关文章

  1. 1

    在没有键的情况下联接两个相等的数据集

  2. 2

    在没有公用键的情况下联接多个表

  3. 3

    联接表上2列的唯一键

  4. 4

    MySQL如何在没有公用键的情况下联接3个表

  5. 5

    SQL如何在以下情况下联接两个表以获取记录?

  6. 6

    基于Spark中的功能在没有公共密钥的情况下联接两个RDD

  7. 7

    MySQL:MySQL表中的两个不同值被视为相同(无法设置唯一键)

  8. 8

    匹配来自两个表的人口统计信息,没有唯一标识符

  9. 9

    使用FK连接来自两个表的数据

  10. 10

    有没有一种方法可以从一个表中全部选择,并在可能的情况下联接?

  11. 11

    如何在没有公共密钥的情况下联接2个表并随机生成第二个表的行

  12. 12

    流口水者的规则是在没有评估的情况下联系两个事实

  13. 13

    如何在没有唯一键警告的情况下使用React渲染Material UI网格

  14. 14

    如何在SQL中列不匹配的情况下联接两个表

  15. 15

    在没有获取不匹配记录的情况下联接表

  16. 16

    连接来自两个表的数据

  17. 17

    在没有公用键的情况下联接多个表

  18. 18

    MySQL查询从两个表中检索数据,即使没有找到数据,两个表中的唯一列

  19. 19

    在2个条件下联接两个表

  20. 20

    MySQL在非唯一列上并在带有时间戳条件的情况下联接2个表

  21. 21

    如何在没有多个列表的情况下联接3个表?

  22. 22

    MySQL从表中选择数据并内部联接来自另外两个相同表的所有选择

  23. 23

    在不使用基于级联键的联接的情况下,在Power Pivot中合并来自两个单独表的数据

  24. 24

    如何在可能不会发生的情况下联接两个表?

  25. 25

    我们可以在没有任何公共密钥的情况下联接两个表吗?

  26. 26

    在Oracle中没有相同键的情况下联接两个表

  27. 27

    在没有通用ID的情况下联接三个表#MySQL

  28. 28

    比较两个没有唯一键的表

  29. 29

    SQL Merge 连接来自两个不同数据库的两个表

热门标签

归档