有没有办法在mySQL中的子查询中指定父查询字段?如何在mySQL中的子查询中指定父查询字段?
例如:
我已经用PHP写了一个基本的公告板类型程序。
在数据库中,每个帖子都包含:id(PK)和parent_id(父帖子的ID)。如果帖子本身是父项,那么它的parent_id设置为0.
我想写一个mySQL查询,它将查找每个父级帖子以及父级拥有的子级数。
$query = "SELECT id, (
SELECT COUNT(1)
FROM post_table
WHERE parent_id = id
) as num_children
FROM post_table
WHERE parent_id = 0";
棘手的部分是第一ID不知道它应该是指第二ID是子查询之外。我知道我可以做SELECT id AS id_tmp,然后在子查询中引用它,但是如果我还想返回id并将“id”保留为列名称,那么我必须执行一个查询返回我2列使用相同的数据(这似乎凌乱我)
$query = "SELECT id, id AS id_tmp,
(SELECT COUNT(1)
FROM post_table
WHERE parent_id = id_tmp) as num_children
FROM post_table
WHERE parent_id = 0";
的混乱的方式工作得很好,但我觉得有机会在这里学到的东西,所以我想我会发布问题。
如果我为p1.id取了别名,该怎么办? – 2014-10-21 10:08:55
这是什么意思? “别名为”? – Don 2014-10-22 15:47:58
如果我采用了别名:“SELECT p1.id as MYID”,那么查询将会是什么? – 2014-10-29 12:30:40