(Perdón el título, pero este tema me tiene un poco descerebrado y ya no puedo pensar)
Explico primero el propósito: presentar un listado de alojamientos agrupados por 1) ciudad y 2) tipo.
Estoy usando Wordpress (
acá está el diagrama de la estructura de datos) y, como no tiene ninguna función para hacer lo que deseo (el ordenamiento o agrupamiento aquel), tengo que meter mano directamente a la BD... pero me sobrepasó. Sobre todo al darme cuenta que el nombre de la "ciudad" y el nombre del "tipo" salen del mismo campo.
Tengo dos sentencias SQL, que a continuación coloco, que me devuelven los siguentes resultados (de ejemplo):
Código:
query 1: en la taxonomía (wp_term_taxonomy.taxonomy) 'category' están las ciudades como términos (wp_terms.name)
SELECT wp_terms.name, wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) INNER JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id) WHERE 1=1 AND wp_posts.post_type = 'alojamiento' AND (wp_posts.post_status = 'publish') AND wp_term_taxonomy.taxonomy = 'category' ORDER BY wp_terms.name ASC
ID name
110 Ciudad1
61 Ciudad1
80 Ciudad1
82 Ciudad1
78 Ciudad1
76 Ciudad2
Código:
query 2: en la taxonomía (wp_term_taxonomy.taxonomy) 'tipo' están los tipos como términos (wp_terms.name)
SELECT wp_terms.name, wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) INNER JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id) WHERE 1=1 AND wp_posts.post_type = 'alojamiento' AND (wp_posts.post_status = 'publish') AND wp_term_taxonomy.taxonomy = 'tipo' ORDER BY wp_terms.name ASC
ID name
78 Cabaña
82 Camping
110 Hotel
80 Hotel
76 Hotel
61 Posada
Y necesito hacer "una mezcla" de ellas... es decir, anexar el campo name de la segunda a la primera y... además debe quedar ordenado por name (query 1) ASC, name (query 2) ASC
Código:
query deseada:
ID name (query 1) name (query 2)
78 Ciudad1 Cabaña
82 Ciudad1 Camping
110 Ciudad1 Hotel
80 Ciudad1 Hotel
61 Ciudad1 Posada
76 Ciudad2 Hotel
Debería hacr algo así?:
Código:
SELECT wp_terms.name AS name_query_1, (SELECT wp_terms.name FROM... ¿WHERE?) AS name_query_2, wp_posts.* FROM [... BLA!... ]
Me estoy explicando bien?