templates joomla subquery

templates - Joomla 2.5 obtiene todos los Id. De subcategorías y hace una subselección en la consulta



subquery (1)

Levanto mi cerebro con dos nueces duras. Por lo tanto, los problemas están vinculados y los publico en un solo hilo. Lamentablemente, no puedo proporcionar un Ejemplo de prueba. Aquí vamos …

Uso la siguiente consulta en mi plantilla de Joomla 2.5:

->select(array(''a.description'',''a.display_name'',''a.parent_id'',''a.filename'',''a.url'', ''b.title'',''b.alias'', ''b.id'',''b.catid'',''b.state'',''c.title as catTitle'',''c.parent_id as catparent'')) ->from(''#__attachments AS a'') ->join(''LEFT'', ''#__content AS b ON (a.parent_id = b.id)'') ->join(''INNER'', ''#__categories AS c ON b.catid = c.id'') ->where("b.state = 1 AND c.parent_id in (23)");

esto me une a la tabla de módulos "#_ attachments" con "# _content" y "#_articles". con el objetivo de obtener las imágenes adjuntas de un artículo, el título del artículo, el alias, la identificación del artículo, el título de la categoría, la identificación de la categoría, ...

Mis preguntas

  1. La consulta me da el id de la categoría principal (''c.parent_id como catparent'') de la categoría del artículo. ¿Es posible tener una subselección que también me dé el título de esta categoría principal (la identificación está en catálogos)?

  2. Por lo tanto, solo quiero artículos de subcategorías especiales. Tengo un "en" n en mi lugar. saber todas las subcategorías son hijos de la categoría padre con id (5). ¿Cómo obtengo todas las identificaciones de las subcategorías del gato 5. Entonces puedo usar estos Id en mi cláusula "b.state = 1 AND c.parent_id en ($ allSubCategoryIDs)" where?

Saludos cordiales,

Tony


anuncio 1.

Para obtener el título de la categoría principal, agregue

->select(''parent.title AS parentTitle'') ->join(''left'', ''#__categories AS parent ON parent.id=c.parent_id'')

a tu consulta.

anuncio 2.

Dado que Joomla almacena categorías como conjuntos anidados, esto se logra cambiando

->where("b.state = 1 AND c.parent_id in (23)");

dentro

->where(''b.state=1'') ->where(''c.lft BETWEEN parent.lft AND parent.rgt'')