我在一个数据库(访问文件)中有两个表。
表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中添加新数据时我不想每次都这样做。您知道任何解决方案我该怎么做吗?
由于缺少唯一的入门密钥,我无法使用关系,对吗?
不,这不对,通常可以使用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
。所谓的标准化
您还应该在表ProductId
1和CategoryID
表2中将其定义为主键,CategoryID
在第一个表中将其定义为外键。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句