使用 Inner Join 和 IN Clause 将 MySQL 中的数据相交
在 MySQL 中,INTERSECT 运算符不可用于直接比较多个字段之间的多个字段表。但是,您可以使用内部联接或 IN 子句实现类似的功能。
使用内部联接:
内部联接语法允许您根据匹配值过滤行来自不同的表。例如,要搜索名字为“john”、姓氏为“smith”的记录,可以使用以下查询:
SELECT DISTINCT records.id FROM records INNER JOIN data d1 on d1.id = records.firstname AND data.value = "john" INNER JOIN data d2 on d2.id = records.lastname AND data.value = "smith"
使用 IN 子句:
另一种选择是使用 IN 子句,它允许您检查一个值是否与一组值匹配。下面是使用 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' )
内连接和 IN 子句方法都提供了在 MySQL 中交叉数据的有效方法。方法的选择取决于您查询的具体要求。
以上是如何使用 INNER JOIN 和 IN 子句在 MySQL 中模拟 INTERSECT?的详细内容。更多信息请关注PHP中文网其他相关文章!