在 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中文网其他相关文章!