mysql - Complex SQL Pivot -


so i've got query selecting data 4 tables:

  • cases
  • taxonomies (containing titles , data taxonomies)
  • taxonomy_values (possible values taxonomies)
  • post_taxonomy_values (holds ids case table, , ids taxonomy table link two)

i'm attempting select row cases table , taxonomy names , values. here's i've got far:

select cases.title, cases.content, cases.status, taxonomies.title 'taxonomy', taxonomy_values.value 'taxonomy_value' cases, post_taxonomy_values, taxonomies, taxonomy_values cases.slug = 'b-v-dpp' , post_taxonomy_values.post = cases.id , taxonomies.id = post_taxonomy_values.taxonomy , taxonomy_values.id = post_taxonomy_values.value 

but generates: current query result

so i'd take taxonomy names , make them column names, , set values part of returned row.

here's structure of tables:

cases:

cases table

taxonomies:

taxonomies table

taxonomy_values ('taxonomy' references id in taxonomies table):

taxonomy_values table

post_taxonomy_values ('taxonomy' references id in taxonomies table , 'value' references id in taxonomy_values table):

post_taxonomy_values table

i've written , re-written query can't head round problem, appreciated!

this should trick

select cases.title, cases.content, cases.status, max(case when post_taxonomy_values.post = cases.id , taxonomies.title = 'tags' taxonomies.title else '' end) tags, max(case when post_taxonomy_values.post = cases.id , taxonomies.title = 'tags' taxonomy_values.value.value else '' end) tags_value, max(case when post_taxonomy_values.post = cases.id , taxonomies.title = 'court' taxonomies.title else '' end) court, max(case when post_taxonomy_values.post = cases.id , taxonomies.title = 'court' taxonomy_values.value.value else '' end) court_value, . . . cases, post_taxonomy_values, taxonomies, taxonomy_values cases.slug = 'b-v-dpp' , taxonomies.id = post_taxonomy_values.taxonomy , taxonomy_values.id = post_taxonomy_values.value group cases.title, cases.content, cases.status 

Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -