Mysql 主选择从子查询中获取值

Mysql 主选择从子查询中获取值,mysql,Mysql,此查询不起作用,但我希望它足以让您了解我需要什么: SELECT p.ID, lat.l FROM hlp_posts AS p WHERE p.ID IN (SELECT pm.post_id, pm.meta_value AS l FROM hlp_postmeta AS pm WHERE pm.meta_key = "hlp_latitude") lat 我需要的是在主菜单中选择在子查询中选择的值(lat.l)。 我可以通过连接获得它,但我不能使用它。您可以使用JOIN,例如:

此查询不起作用,但我希望它足以让您了解我需要什么:

SELECT p.ID, lat.l 
FROM hlp_posts AS p
WHERE p.ID 
IN (SELECT pm.post_id, pm.meta_value AS l FROM hlp_postmeta AS pm WHERE pm.meta_key = "hlp_latitude") lat  
我需要的是在主菜单中选择在子查询中选择的值(
lat.l
)。

我可以通过连接获得它,但我不能使用它。

您可以使用
JOIN
,例如:

SELECT p.id, pm.meta_value
FROM hlp_posts AS p JOIN hlp_postmeta pm ON p.ID = pm.post_id
WHERE pm.meta_key = "hlp_latitude";

使用联接是否有任何性能原因,因为in很旧,应该避免我的问题是,联接是否会加快我的速度query@Noob你可以参考这样的答案。我认为这取决于索引,而不是join vs sub query。谢谢,这将帮助我,因为我想证明我的数据库技能,特别是在索引方面。如果你在中使用
,你必须在子查询中返回一列,这是用于评估条件的列,这种方法将不可能获取
meta\u值
。为什么不能使用
JOIN
?我知道这看起来很奇怪,但在这种情况下,JOIN的行为非常缓慢。在完整的代码中,我有15个连接。因为从一些测试中,子查询表现得更好,所以我尝试用它们重构代码。