小编Ama*_*anS的帖子

外键是否可以引用同一个表中的主键?

我只是认为答案是错误的,因为外键没有uniqueness属性.

但是有些人说它可以在自我加入桌子的情况下.我是新来的SQL.如果是真的请解释如何以及为什么?

Employee table
| e_id | e_name  | e_sala  |  d_id  |
|----  |-------  |-----    |--------|
|  1   |   Tom   |  50K    |    A   |
|  2   | Billy   |  15K    |    A   |
|  3   | Bucky   |  15K    |    B   |


department table
| d_id | d_name  |
|----  |-------  |
|  A   |   XXX   | 
|  B   |   YYY   | 
Run Code Online (Sandbox Code Playgroud)

现在,d_id是外键,所以它如何成为主键.并解释一下join.有什么用?

sql foreign-keys primary-key

55
推荐指数
4
解决办法
9万
查看次数

如何保存sql中的最后一个检查点以用于下一行

有什么办法可以存储最后一次迭代的行结果并将其用于下一行迭代吗?

例如,我有一个表说(Time_Table).

__   Key   type   timeStamp             
1 )    1     B    2015-06-28 09:00:00  
2 )    1     B    2015-06-28 10:00:00  
3 )    1     C    2015-06-28 11:00:00  
4 )    1     A    2015-06-28 12:00:00  
5 )    1     B    2015-06-28 13:00:00  
Run Code Online (Sandbox Code Playgroud)

现在假设我有exceptionTime90分钟不变.如果我开始检查我的Time_Table话:

  1. 对于第一行,因为在09:00:00,它之前没有行将直接将此记录放入我的目标表中.现在我的参考点是9:00:00.

  2. 对于10:00:00,最后一个参考点的第二行是09:00:00和TIMESTAMPDIFF(s,09:00:00,10:00:00)60,它小于所需的90.我不将此行添加到我的目标表.

  3. 对于第三行,最后记录的异常是at,09:00:00并且TIMESTAMPDIFF(s,09:00:00,11:00:00)120是大于所需的90,因此我选择此记录并将参考点设置为11:00:00.

  4. 对于第四排TIMESTAMPDIFF(s,11:00:00,12:00:00).同样,它不会被保存.

  5. 这个又被保存了.

目标表

__   Key   type   timeStamp             
1 )    1     B    2015-06-28 09:00:00  
2 )    1     C    2015-06-28 …
Run Code Online (Sandbox Code Playgroud)

sql vertica

15
推荐指数
1
解决办法
478
查看次数

标签 统计

sql ×2

foreign-keys ×1

primary-key ×1

vertica ×1