这么美好的一天,每个人都很好,问题如下。
我认为mysql中有几个表,我有时从两个研究中得到数据我遇到了典型的“链接两个表”,“对两个表做两个查询”,但这让我感到困惑。
也就是说,如果我们有两个表,如下:
Tabla1
| id | nick |
|-------------
| 1 | admin|
tabla2
| id_post | content | autor |
|---------------------------------
| 100 | asdasd | 1 |
为什么与mysql有关,但是在查询时你可以这样做:
select tabla1.nick, tabla2.* from tabla1, tabla2, where id="1" and tabla2.autor = tabla1.id
这两者之间有什么区别?或者拥有一个或另一个有什么好处?
答案 0 :(得分:3)
如果我正确地理解了你的问题,那你就问了约束,为什么实际上让表A上的列X引用表B上的列Y,当你可以在SELECT查询中加入这两个表时?
这是为了强制引用完整性,减少冗余等。这样做可以使数据本身可靠,这样当你在SELECT语句中使用连接时,它们就可以正常工作。
例如,如果您有一个ASSIGNMENTS和一个SUPERVISORS表,并且每个分配总是分配给主管表上的主管,则ASSIGNMENTS和SUPERVISORS上的主管字段之间的外键约束将确保发生这种情况。如果主管值在一个表上发生变化,它还可以灵活地确定应该发生什么(如果它受到限制?是否应该将更改传递到另一个表?等等)
如果没有定义关系,可能会将分配分配给甚至不存在的主管。那么SELECT语句的结果就不会那么可靠......