Skip to content

Instantly share code, notes, and snippets.

@avargas
Created September 3, 2015 22:01
Show Gist options
  • Save avargas/7590516fd642a322b59e to your computer and use it in GitHub Desktop.
Save avargas/7590516fd642a322b59e to your computer and use it in GitHub Desktop.
i could suggest you do this:
user 1:
id: 5
name: angelo
email: angelo@nivler.com
key/value:
['date subscribed', 02/17/2010],
['birthday', 02/17/1990]
['unsubscribed from email', 1],
['is admin', 1]
.....
CREATE VIEW users_with_kv AS
SELECT
u.*,
k1.value as 'date unsubscribed',
k2.value as 'birthday',
k3.value as 'unsubscribed from email',
k4.value as 'is admin',
....
FROM users u
LEFT JOIN user_key_value k1 ON u.user_id = k1.user_id AND k1.key = 'date unsubscribed'
LEFT JOIN user_key_value k2 ON u.user_id = k2.user_id AND k2.key = 'birthday'
LEFT JOIN user_key_value k3 ON u.user_id = k3.user_id AND k3.key = 'unsubscribed from email'
LEFT JOIN user_key_value k4 ON u.user_id = k4.user_id AND k4.key = 'is admin'
.....
GROUP BY u.user_id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment