设计器表关系与连接

时间:2014-04-29 08:13:22

标签: mysql join

我只有一个关于MySQL的初学者小问题,包含关系和连接。

他们之间有什么区别?在设计器部分的phpmyadmin中,我可以在表之间建立关系。因此表格通过例如" id"相互链接。

但如果我在我的PHP代码中进行加入/左连接...

例如:

$stmt = $db->prepare ("SELECT * FROM visitor 
               LEFT JOIN host ON visitor.host_id=host.id 
               LEFT JOIN reason ON visitor.reason_id=reason.id
               WHERE visitor.id = ?");
$stmt->bindParam(1, $lastid);
$stmt->execute(); 

我和我做过的一样吗?我现在问为什么你需要将关系设置为phpmyadmin?这样做有什么好处?

1 个答案:

答案 0 :(得分:0)

我怀疑你指的是外键。您在技术上已在连接中使用外键(reason_id字段),但通过正式定义它们会创建完整性约束。这样做的好处是不可能不小心插入具有无效reason_id的访问者,也可以指定删除行为以确保适当地清除所有相关记录。请注意,并非所有存储引擎都支持外键。

见这里:https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html