次のようにテーブルをトラバースすることは可能ですか:
mysql> select * from `stackoverflow`.`Results`; +--------------------+---------+-------------+--------+ | | ID | タイプ | CRITERIA_ID | 結果 | +--------------------+---------+-------------+--------+ | | 1 | 車 | 環境 | 1 | | | 2 | 車 | ガス | | | | | 3 | 車 | 年齢 | | | | | 4 | 自転車 | 環境 | 1 | | | 5 | 自転車 | ガス | | | | | 6 | 自転車 | 年齢 | 1 | | | 7 | バス | 環境 | 1 | | | 8 | バス | ガス | 1 | | | 9 | バス | 年齢 | 1 | +--------------------+---------+-------------+--------+ セットで 9 行 (0.00 秒)
これに:
+-----+-----+-----+-----+ | | タイプ | 環境 | ガス | 年齢 | +-----+-----+-----+-----+ | | 車 | 1 | | | | | | | 自転車 | 1 | | | 1 | | | バス | 1 | 1 | 1 | +-----+-----+-----+-----+
目的は、すべての を選択し、CRITERIA_ID
それらを列として使用することです。TYPE
行として、すべてのsを使用するのが好きです。
- すべての基準:
SELECT distinct(CRITERIA_ID) FROM stackoverflow.Results;
- いろんなタイプ
SELECT distinct(TYPE) FROM stackoverflow.Results;
しかし、それらをどのように組み合わせてビューまたはsmthにしますか。このような?
データで遊ぶのが好きなら。これは、テーブルを生成するスクリプトです。
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 );