Say I have this dataset
user | group
-------- + -------
a@a.com | A
a@a.com | B
b@b.com | A
c@c.com | B
d@d.com | A
d@d.com | B
d@d.com | C
I want to convert this to a table as follows:
user | IN_A | IN_B | IN_C
-------- + ------- + ------- + -------
a@a.com | TRUE | TRUE | FALSE
b@b.com | TRUE | FALSE | FALSE
c@c.com | FALSE | TRUE | FALSE
d@d.com | TRUE | TRUE | TRUE
I have:
SELECT
user,
IF(LOCATE('A', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_A,
IF(LOCATE('B', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_B,
IF(LOCATE('C', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_C
FROM users
GROUP BY user
, , , ?