我只是认为答案是错误的,因为外键没有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.有什么用?
有什么办法可以存储最后一次迭代的行结果并将其用于下一行迭代吗?
例如,我有一个表说(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话:
对于第一行,因为在09:00:00,它之前没有行将直接将此记录放入我的目标表中.现在我的参考点是9:00:00.
对于10:00:00,最后一个参考点的第二行是09:00:00和TIMESTAMPDIFF(s,09:00:00,10:00:00)60,它小于所需的90.我不将此行添加到我的目标表.
对于第三行,最后记录的异常是at,09:00:00并且TIMESTAMPDIFF(s,09:00:00,11:00:00)120是大于所需的90,因此我选择此记录并将参考点设置为11:00:00.
对于第四排TIMESTAMPDIFF(s,11:00:00,12:00:00).同样,它不会被保存.
这个又被保存了.
目标表
__ Key type timeStamp
1 ) 1 B 2015-06-28 09:00:00
2 ) 1 C 2015-06-28 …Run Code Online (Sandbox Code Playgroud)