..


赞助商链接

删除这些表使用JOIN

由Max博西写文章

在这短短的文章中,我们将看到它是如何可以进行查询 ,删除(DELETE)利用联接的潜力即建立在MySQL表之间的关系。
事实上,我们已经看到了如何使用数据的选择(SELECT)的加入被更新(UPDATE),在这里我们将只扩大已经取得的经验教训。

为了更好地了解这项技术的潜力,应考虑,因为我们的习惯,承担具体的使用情况。

比方说,我们都需要在一个假设的仓库数据库中 (其中我们描述他们的结构),下表组成:

  • 货架
    • ID(INT)
    • 说明(VARCHAR)
  • 货架
    • ID(INT)
    • scaffale_id(INT)
    • 说明(VARCHAR)
  • 产品
    • ID(INT)
    • ripiano_id(INT)
    • 名称(VARCHAR)
    • 价格(浮动)
现在假设你有需要消除的产品。 我们解决以下三个不同的结果。

1)假设你要删除一个产品,你知道ID。 在这种情况下,您可以只运行一个简单的查询:

 



 DELETE FROM产品WHERE ID = 1 *;

 
2)将使用相同​​的查询,如果您要删除货架包装成一个给定的所有产品:
 



 DELETE FROM WHERE ripiano_id = 1产品*;

 
3)但是,如果你想删除某个货架内的所有产品?
作为一个简单的查询以前见过这样的人不可能因为在“产品”有没有现场,指的架子!

在现实的问题不是无法克服的! 一点点“在处理查询灵巧,其实是很容易绕过障碍物! 如何? 与加入! 下面是一个例子:

 



 DELETE产品*







从产品INNER JOIN货架







 ON = prodotti.ripiano_id ripiani.id







 WHERE ripiani.scaffale_id = 1;



这样,我们创建了两个表之间的“产品”和“架子”(在加入“ripiano_id”表相匹配的第二个第一标识符字段为基础)的关系,以利用外地“scaffale_id”这个“最后。

乍看之下,或许,似乎有点复杂... ... 其实原因很简单。 这是有关创建两个表之间的逻辑关系,以利用信息来操作的第二个第一。

其中,除了产品,我们想删除所有的货架货架对应于给定pututo我们使用一个稍微不同的查询:

 



 DELETE产品.*,货架.*







从产品INNER JOIN货架







 ON = prodotti.ripiano_id ripiani.id







 WHERE ripiani.scaffale_id = 1;



在本质上,这是唯一的正上方的取消将影响表中的“产品”不仅领域的不同查询视图:
 



产品*

 
而且表“架子”的:
 



货架*

 
如有问题或要求我邀请您张贴在我们的论坛

在同一类...
电子学习
MS访问(高级) MS访问(高级)
了解如何创建和管理数据库迅速和容易。 起价29€。
MySQL的(课程) MySQL的(课程)
管理的开放源码数据库。 从39€。
SQL和数据库(课程) SQL和数据库(课程)
创建和管理关系数据库。 从39€。
赞助商链接