【发布时间】:2022-01-31 05:02:23
【问题描述】:
我正在尝试编写一个 sql 查询来组合行,因此结果将如下所示:
| post_id | date_1 | time_1 | date_2 | time_2 |
|---|---|---|---|---|
| 500 | 20220303 | 20:00:00 | ||
| 500 | 20220202 | 20:00:00 |
这是我迄今为止尝试过的:
SELECT
CASE meta_key WHEN"performance_date_1"THEN meta_value ELSE NULL END AS date_1,
CASE meta_key WHEN"performance_date_2"THEN meta_value ELSE NULL END AS date_2
FROM test;
架构 SQL:
CREATE TABLE test (
meta_id bigint(20) AUTO_INCREMENT,
post_id INT,
meta_key varchar(255) NULL,
meta_value longtext NULL,
PRIMARY KEY (`meta_id`)
);
INSERT INTO test (post_id, meta_key, meta_value) VALUES (500, 'performance_date_1', '20220303');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (500, 'performance_time_1', '20:00:00');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (500, 'performance_date_2', '20220202');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (500, 'performance_time_2', '20:00:00');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (501, 'performance_date_1', '20220403');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (501, 'performance_time_1', '20:00:00');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (501, 'performance_date_2', '20220407');
INSERT INTO test (post_id, meta_key, meta_value) VALUES (501, 'performance_time_2', '19:00:00');
SQL 小提琴 https://www.db-fiddle.com/f/9Zxq4HJpuAiSPvabQzL4ux/1
任何帮助将不胜感激。
【问题讨论】:
标签: mysql sql conditional-aggregation