Is it possible to navigate the table as follows:
mysql> select * from `stackoverflow`.`Results`;
+ -------------- + --------- + ------------- + -------- +
| ID | TYPE | CRITERIA_ID | RESULT |
+ -------------- + --------- + ------------- + -------- +
| 1 | car | env | 1 |
| 2 | car | gas | |
| 3 | car | age | |
| 4 | bike | env | 1 |
| 5 | bike | gas | |
| 6 | bike | age | 1 |
| 7 | bus | env | 1 |
| 8 | bus | gas | 1 |
| 9 | bus | age | 1 |
+ -------------- + --------- + ------------- + -------- +
9 rows in set (0.00 sec)
In it:
+ ------ + ----- + ----- + ----- +
| TYPE | env | gas | age |
+ ------ + ----- + ----- + ----- +
| car | 1 | | |
| bike | 1 | | 1 |
| bus | 1 | 1 | 1 |
+ ------ + ----- + ----- + ----- +
The goal is to select all CRITERIA_ID and use them as a column. As strings I like to use all TYPE .
- All criteria:
SELECT distinct(CRITERIA_ID) FROM stackoverflow.Results; - All types
SELECT distinct(TYPE) FROM stackoverflow.Results;
But how to combine them with performance or smth. like this?
If you like to play with data. This is the script to generate the table:
CREATE SCHEMA `stackoverflow`; CREATE TABLE `stackoverflow`.`Results` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT, `TYPE` varchar(50) NOT NULL, `CRITERIA_ID` varchar(5) NOT NULL, `RESULT` bit(1) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB; INSERT INTO `stackoverflow`.`Results` ( `ID`, `TYPE`, `CRITERIA_ID`, `RESULT` ) VALUES ( 1, "car", env, true ), ( 2, "car", gas, false ), ( 3, "car", age, false ), ( 4, "bike", env, true ), ( 5, "bike", gas, false ), ( 6, "bike", age, true ), ( 7, "bus", env, true ), ( 8, "bus", gas, true ), ( 9, "bus", age, true );