如何在子查询中使用主查询中的值

use*_*568 7 mysql subquery

我试图运行一个基于主要查询值之一的子查询,但我总是得到 0 作为 VALUE。这是我的查询:

SELECT ID,(
SELECT COUNT( * ) 
    FROM  `post_meta` 
    WHERE  `post_id` 
    IN (
        SELECT  `ID` 
        FROM  `wp_posts` 
        WHERE  `post_title` = posts.ID
    )
) AS counter
FROM wp_posts;
Run Code Online (Sandbox Code Playgroud)

如果我只运行带有 id 号而不是 posts.ID 的子查询,它会返回一个很好的值。

Lin*_*ger 5

我确实相信子查询中的简单连接将为您提供正确的计数:

SELECT posts.ID,
(
  SELECT COUNT(*) 
  FROM post_meta
  INNER JOIN wp_posts ON wp_posts.ID = post_meta.post_ID
  WHERE wp_posts.post_title = posts.ID  
) AS counter
FROM posts;
Run Code Online (Sandbox Code Playgroud)