¿Hay alguna forma de especificar el campo de consulta padre desde una subconsulta en mySQL?¿Cómo se especifica el campo de consulta principal desde una subconsulta en mySQL?
Por ejemplo:
He escrito un programa básico de tipo tablón de anuncios en PHP.
En la base de datos, cada publicación contiene: id (PK) y parent_id (la identificación de la publicación principal). Si la publicación es en sí misma una primaria, entonces parent_id está establecida en 0.
Estoy tratando de escribir una consulta mySQL que encuentre todas las publicaciones principales y la cantidad de hijos que tenga la matriz.
$query = "SELECT id, (
SELECT COUNT(1)
FROM post_table
WHERE parent_id = id
) as num_children
FROM post_table
WHERE parent_id = 0";
La parte difícil es que la primera Identificación no sabe que debería estar refiriéndose a la segunda Identificación que se encuentra fuera de la subconsulta. Sé que puedo hacer SELECCIONAR ID AS id_tmp y luego referirme a él dentro de la subconsulta, pero luego si también quiero devolver la identificación y mantener "id" como el nombre de la columna, entonces tendría que hacer una consulta que me devuelva me 2 columnas con los mismos datos (que parece complicado para mí)
$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";
la forma desordenada funciona bien, pero siento una oportunidad para aprender algo aquí, así que pensé que había puesto la cuestión.
¿Qué ocurre si tomé alias para p1.id? –
¿Qué significa eso? "tomado alias para"? – Don
Si he tomado alias como: "SELECT p1.id como MYID", ¿cuál será la consulta? –