[Php] Consulta de publicaciones y etiquetas en la misma consulta


Answers

Creo que debería ser consultado así

$this->db->select('posts.*, tags.name');
$this->db->from('tags_map');
&this->db->join('posts', 'tags_map.id_post = posts.id');
$this->db->join('tags', 'tags_map.id_tag = tags.id');

al usar join, debe usar la relación uno a muchos, en este caso la tabla tags_map sirve como la tabla de unión que sirve la relación de varios a uno con la tabla de publicaciones y etiquetas

Question

Tengo 3 tablas con esos campos relevantes

publicaciones (id, título)
etiquetas (id, nombre)
tags_map (id, id_post, id_tag)

Lo intento así:

$this->db->select('posts.*,tags.name');
$this->db->from('posts');
$this->db->join('tags_map', 'tags.id_post = posts.id');
$this->db->join('tags', 'tags.id = tags_map.id_tag');
$this->db->group_by('posts.id'); // I can comment this line and same result

Esto parece, pero incluso cuando hay más de un registro de tags_map, solo devuelve uno,

¿Cómo puedo devolverlos todos, en una consulta?

-editar-

Lo solucioné un poco, pero requiere manejo de php

$this->db->select('posts.*,group_concat(tags.name) as thetags');

Esto retrotraería un campo thethags = 'tag1, tag2, tag3'

Pero me gustaría obtener otros archivos en la tabla de etiquetas ...

Y, por ejemplo:

$this->db->select('posts.*,group_concat(tags.name) as 'thetags',group_concat(tags.relevance) as 'therelevances');

No estoy seguro si puedo confiar en la orden?