Skip to content

Instantly share code, notes, and snippets.

@broox
Last active March 30, 2018 11:04
Show Gist options
  • Save broox/5164678 to your computer and use it in GitHub Desktop.
Save broox/5164678 to your computer and use it in GitHub Desktop.
Export data from Joomla's Sobi Pro via MySQL pivot table query
/*
* Export the data generated by this query to create fields from the custom rows
* stored in jos_sobipro_field.
*/
SELECT CONCAT("MAX(CASE WHEN f.nid = '",nid,"' THEN d.baseData END) AS ", nid, ", ")
FROM `jos_sobipro_field`
ORDER BY nid;
/*
* Take the strings exported from step 1 and replace the indented section below.
* Run the new query to get an actual export of the sobi pro data
*/
SELECT d.sid,
MAX(CASE WHEN f.nid = 'field_address' THEN d.baseData END) AS field_address,
MAX(CASE WHEN f.nid = 'field_address_2' THEN d.baseData END) AS field_address_2,
MAX(CASE WHEN f.nid = 'field_city' THEN d.baseData END) AS field_city,
MAX(CASE WHEN f.nid = 'field_country' THEN d.baseData END) AS field_country,
MAX(CASE WHEN f.nid = 'field_description' THEN d.baseData END) AS field_description,
MAX(CASE WHEN f.nid = 'field_details' THEN d.baseData END) AS field_details,
MAX(CASE WHEN f.nid = 'field_email' THEN d.baseData END) AS field_email,
MAX(CASE WHEN f.nid = 'field_fax' THEN d.baseData END) AS field_fax,
MAX(CASE WHEN f.nid = 'field_image' THEN d.baseData END) AS field_image,
MAX(CASE WHEN f.nid = 'field_name' THEN d.baseData END) AS field_name,
MAX(CASE WHEN f.nid = 'field_phone' THEN d.baseData END) AS field_phone,
MAX(CASE WHEN f.nid = 'field_website' THEN d.baseData END) AS field_website,
MAX(CASE WHEN f.nid = 'field_zip' THEN d.baseData END) AS field_zip
FROM jos_sobipro_field f, jos_sobipro_field_data d
WHERE f.fid = d.fid
GROUP BY d.sid
ORDER BY d.sid;
@skwtayler
Copy link

Hi there, do you know how to export the data with the Category IDs included in a column?

@tquiroga
Copy link

You, sir, made me save a lot of time. Many Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment