为什么在mysql中链接表?

时间:2014-02-23 02:51:04

标签: php mysql sql

这么美好的一天,每个人都很好,问题如下。

我认为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

这两者之间有什么区别?或者拥有一个或另一个有什么好处?

1 个答案:

答案 0 :(得分:3)

如果我正确地理解了你的问题,那你就问了约束,为什么实际上让表A上的列X引用表B上的列Y,当你可以在SELECT查询中加入这两个表时?

这是为了强制引用完整性,减少冗余等。这样做可以使数据本身可靠,这样当你在SELECT语句中使用连接时,它们就可以正常工作。

例如,如果您有一个ASSIGNMENTS和一个SUPERVISORS表,并且每个分配总是分配给主管表上的主管,则ASSIGNMENTS和SUPERVISORS上的主管字段之间的外键约束将确保发生这种情况。如果主管值在一个表上发生变化,它还可以灵活地确定应该发生什么(如果它受到限制?是否应该将更改传递到另一个表?等等)

如果没有定义关系,可能会将分配分配给甚至不存在的主管。那么SELECT语句的结果就不会那么可靠......