mysql - 内部连接而不是内部选择效果不佳

标签 mysql sql

我有一个正在运行的以下查询(以及两个名为 topic 和 topic_dataitem_relation 的表):

SELECT * FROM omid.topic as t
WHERE t.ID NOT IN (
SELECT tdr.TopicID FROM omid.topic_dataitem_relation As tdr
WHERE tdr.DataitemID = 37
);

但我希望当我使用加入时我无法达到相同的结果:

SELECT distinct * 
FROM omid.topic as t
left join  omid.topic_dataitem_relation As tdr
ON t.ID != tdr.TopicID
WHERE tdr.DataitemID = 37;

如果可以通过加入来做到这一点,任何人都可以帮助我吗?(提前致谢)

最佳答案

JOIN 也是一个条件,因此要应用其他条件,必须使用 AND 而, 您的查询将是:

    SELECT * 
    FROM omid.topic as t
    JOIN omid.topic_dataitem_relation As tdr
    ON t.ID != tdr.TopicID
    AND tdr.DataitemID = 37; /* Your WHERE BECOME AND */
    /* AND condition2 = value 2*/
    /* AND ..... */

关于mysql - 内部连接而不是内部选择效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808807/

相关文章:

mysql - 如何将 mysql 数据库文件连接到本地 ruby​​ on rails 应用程序

mysql - 当使用MySQL的GROUP BY时,对结果中放入什么数据有什么保证?

mysql - 优化 8.5 亿行 MySQL 表的聚合

sql - 使用 sp_executesql 返回 null 的存储过程输出参数

mysql在同一语句中插入选择

php - Paypal 集成 - 添加到购物车按钮

mysql - 如何使用 docker 构建 sidekiq 和 rails 镜像?

mysql - 升级到 MySQL 8。从服务器收到字段 '255' 的未知字符集索引。异常(exception)

mysql - 结合图形数据库和 RDBMS

mysql - SQL IF 和 LEFT JOIN 导致数据库出现故障