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:
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) ASCquery 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
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:
Me estoy explicando bien? SELECT wp_terms.name AS name_query_1, (SELECT wp_terms.name FROM... ¿WHERE?) AS name_query_2, wp_posts.* FROM [... BLA!... ]