首页 > 数据库 > mysql教程 > 两次加入同一张表:何时以及如何是最佳实践?

两次加入同一张表:何时以及如何是最佳实践?

Mary-Kate Olsen
发布: 2025-01-07 07:27:42
原创
228 人浏览过

Joining the Same Table Twice: When and How is it Best Practice?

两次连接同一张表:最佳实践

问题:

连接具有匹配列的两个表时,如何你能高效地同时检索两列对应的数据吗?

方法1:加入两次

如上例所示,两次加入同一个表可以根据每个匹配列分别检索数据:

SELECT t.PhoneNumber1, t.PhoneNumber2, 
       t1.SomeOtherFieldForPhone1, t2.someOtherFieldForPhone2
FROM Table1 t
JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1
JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
登录后复制

方法2 : OR 在 ON 子句中

另一种方法虽然没有被证明是有效的,但会尝试使用连接多个匹配列ON 子句中的 OR:

SELECT ...
FROM Table1
INNER JOIN Table2 
   ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
      Table1.PhoneNumber2 = Table2.PhoneNumber
登录后复制

最佳实践:

建议将方法 1 作为最佳解决方案。 它提供了一个简单的解决方案以及明确的方式来检索与多个匹配列相对应的数据,而无需依赖复杂的 OR

改进设计的替代方案:

虽然这两种方法都可以实现所需的结果,但重要的是要考虑数据库设计最佳实践,以避免依赖基于表之间的联接自然键,例如电话号码。自然键可能会频繁更改,从而导致潜在的数据完整性问题。

以上是两次加入同一张表:何时以及如何是最佳实践?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板