Есть ли способ указать родительское поле запроса из подзапроса в mySQL?
Например:
Я написал базовую программу типа бюллетеней в PHP.
В базе данных каждая запись содержит: id (PK) и parent_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" в качестве имени столбца, тогда мне нужно будет выполнить запрос, который возвращает me 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";
Неприятный способ работает отлично, но я чувствую возможность узнать что-то здесь, поэтому я подумал, что поставил бы вопрос.