Roo*_*bah 3 database one-to-one
1)表格可以与多个表格保持一对一的关系!
为了澄清更多,如果我想进行插入,第一个表将受到影响,其他表中只有一个会受到影响.
2)如果是这样,主键将如何?
3)此外,如果我想从这些表中检索大量记录,查询会是什么样子?
谢谢 .
表格可以与多个表格保持一对一的关系!
是的,如果你真的是1:0/1:
Create Table Parent
(
Id ... not null Primary Key
, ...
)
Create Table Child1
(
Id ... not null Primary Key
, Foreign Key ( Id ) References Parent ( Id )
...
)
Create Table Child2
(
Id ... not null Primary Key
, Foreign Key ( Id ) References Parent ( Id )
...
)
Run Code Online (Sandbox Code Playgroud)
此设置需要先在父表中输入一个值,然后再输入子表(无特定顺序).此外,您可以将一个值添加到其中一个子表而不是另一个,因为它们都只依赖于父表中存在的值而不是彼此.
加成
要从子表中进行选择,它将涉及与任何其他父子关系相同的过程.例如:
Select P.Col1, P.Col2...
, Child1.Col1, Child1.Col2...
From Parent
Inner Join Child1
On Child1.FKCol = Parent.PKCol
Run Code Online (Sandbox Code Playgroud)
通过在这里使用内部联接,我只返回存在子行的父行.如果您想要所有父行以及只有那些匹配的子行,您将使用左连接而不是内连接.如果要同时从多个子表中选择数据,可以在From子句中包含这些数据:
Select P.Col1, P.Col2...
, Child1.Col1, Child1.Col2...
, Child2.Col1, Child2.Col2...
, Child3.Col1, Child3.Col2...
From Parent
Left Join Child1
On Child1.FKCol = Parent.PKCol
Left Join Child2
On Child2.FKCol = Parent.PKCol
Left Join Child3
On Child2.FKCol = Parent.PKCol
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2878 次 |
| 最近记录: |