我有两个单独的SELECT语句:
SELECT VCe.VId FROM `VCe` WHERE `YId` = 9007 AND `MaId` =76 AND `MoId` = 2851
SELECT r_pts.p_id FROM r_pts WHERE r_pts.v_id IN (57202, 57203, 69597, 82261, 82260, 69596, 69595, 82259)
当它们分别运行时,它们都在0.05秒之内完成,但是当我将第一个嵌套在第二个时,它急剧增加到3.3秒。
我想做一个连接,以便我可以使用第一个选择作为第二个SELECT的输出作为IN()的结果集,但是我不知道如何在JOIN中包括WHERE条件。
编辑:另外,按照我的要求做联接的正确语法是什么?
感谢您的帮助,不胜感激!
最佳答案
SELECT r_pts.p_id FROM r_pts, 'VCe' WHERE r_pts.v_id = VCe.VId AND VCe.YId = 9007 AND VCe.MaId =76 AND VCe.MoId = 2851
联接的基本目标是描述两个表之间的关系。我从您的示例推断出,r_pts表中的v_id列是指向VCe表中的VId主键的外键。当您在查询中添加一个术语(例如“ r_pts.v_id = VCe.VId”)时,该术语具有您希望联接的每个表中的一个字段,它将告诉数据库如何匹配表之间的行以使“虚拟”行”,其中包含两个表中的列。您的其他查询字词会限制结果集中包含哪些行。