首页 > 数据库 > mysql教程 > 如何高效地交叉MySQL中多个表的数据?

如何高效地交叉MySQL中多个表的数据?

Susan Sarandon
发布: 2024-12-29 16:15:19
原创
682 人浏览过

How to Efficiently Intersect Data from Multiple Tables in MySQL?

在 MySQL 中交叉数据

问题:

在 MySQL 中,用户需要一个方法基于多个字段来交叉两个表“记录”和“数据”中的数据“记录”表。前面在另一个 DBMS 中使用 INTERSECT 的示例返回了不令人满意的结果。

解决方案:

MySQL 不提供对 INTERSECT 运算符的直接支持。但是,还有其他方法可以实现所需的功能。

一种选择是使用内部联接:

SELECT DISTINCT records.id 
FROM records
INNER JOIN data d1 on d1.id = records.firstname AND d1.value = "john"
INNER JOIN data d2 on d2.id = records.lastname AND d2.value = "smith"
登录后复制

此查询将“records”表与“records”的两个实例联接起来。 data”表,过滤在两个连接中具有匹配值的行。

另一种选择是 in子句:

SELECT DISTINCT records.id 
FROM records
WHERE records.firstname IN (
    select id from data where value = 'john'
) AND records.lastname IN (
    select id from data where value = 'smith'
)
登录后复制

此方法从“记录”表中选择“名字”和“姓氏”字段与“数据”表中的值匹配的行。

这些方法提供了有效的方法通过基于通用标准组合多个表中的行来交叉 MySQL 中的数据。

以上是如何高效地交叉MySQL中多个表的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

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