こんにちは私はこのシナリオを持っています
私のテーブル
create table foo(
id int,
num int1,
stage enum('a','b','c'),
unique(id,stage)
);
これがデータのスニペットです
INSERT INTO `foo` (`id`, `num`, `stage`) VALUES
(1, 1, 'a'),
(1, 2, 'b'),
(1, 3, 'c'),
(2, 1, 'a'),
(2, 2, 'b'),
(2, 3, 'c'),
(3, 1, 'a'),
(3, 2, 'b'),
(4, 1, 'a');
テーブルに関する注記
状態がcのIDは、前の状態がa、bである必要があります。問題は発生しません。
これを次のように照会します
私はこれをスカラー相関サブクエリと区別して使用しました
SELECT DISTINCT
id, IFNULL((
SELECT num
FROM foo f
WHERE f.id = foo.id AND f.stage = 'a'),'') `a`, IFNULL((
SELECT num
FROM foo f
WHERE f.id = foo.id AND f.stage = 'b'),'') `b`, IFNULL((
SELECT num
FROM foo f
WHERE f.id = foo.id AND f.stage = 'c'),'') `c`
FROM foo
[結論] これを行うには、より良い固定が必要です
ありがとう