mysql - 将 "IN"替换为 JOIN 语句

标签 mysql sql ms-access

我在从 Access 迁移到 MySQL 时再次遇到麻烦。

以下 SQL 语句可以与 Access 配合使用:

SELECT *
FROM tbl_content 
WHERE contentID IN (
     SELECT contentID
     FROM tbl_tags
     WHERE Bezeichnung IN (
              SELECT Bezeichnung
              FROM tbl_tags t2
              WHERE t2.contentID= " & contentID & ")
     AND contentID <> " & contentID & ")
AND Status = 1
ORDER BY Datum DESC LIMIT 0,5;

MySQL中,性能确实很慢。有什么需要帮助的想法吗?

最佳答案

MySQL 有一个关于子查询的已知问题,每次比较时都会根据外部查询对其进行评估。避开他们!这可能就是您看到 Access 性能下降如此严重的原因。

关于mysql - 将 "IN"替换为 JOIN 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479743/

相关文章:

mysql - SQL 忽略最后的值

sql - 为什么我的多列仅索引扫描会获取索引中的所有行并仅返回 PostgreSQL 中的一行?

mysql - 索引一个不断变化的字段是否合理,或者不断写入会降低性能吗?

powershell - PowerShell-一次计算文件夹中所有文件的accdb行

mysql - 在 WHERE 子句中使用 AVG 从连接的 MySQL 表中检索数据?

MySQL数据库错误: Column count doesn't match value count at row 1 1 7

Excel 数据连接锁定 Access 数据库,防止第二个连接的刷新

ms-access:在数据库打开时执行某些操作

mysql - 如何收集发送到mysql的查询?

mysql - 备份用户数据库的Shell脚本