我有一个 mysql 数据库,其中包含两个表 - [PM_text]和[PM_bact]等。这两个表包含一个公共数据列。我的意图是使用与第二个表中的公共数据列的匹配项从第一个表中检索信息。我最初为此使用了嵌套查询,并且效果很好。我突然注意到它不再最终执行。我想改用'joins',看看是否会进一步优化它。
这是我的初始查询:
SELECT pmid, year, title, pages FROM PM_text WHERE pmid IN (SELECT pmd_id from PM_bact WHERE bact1 LIKE ? AND bact2 LIKE ? AND associat LIKE ?);
但我打算将其更改为:
从 PM_text、PM_bact 中选择不同的 PM_text.pmid、PM_text.year、PM_text.title、PM_text.pages 在哪里 PM_text.pmid = PM_bact.pmd_id 和 PM_bact.bact1 喜欢?和 PM_bact.bact2 喜欢吗?和 PM_bact.associat 喜欢吗?;
我需要确保与第二个表中的 'bact1'、'bact2' 和 'associat' 匹配,并且担心在查询中重复使用 'AND' 可能会影响其优化。
我相信有更好的方法可以做到这一点,并且对这个主题不熟悉我会很感激你能提供的任何帮助。非常感谢。