我有这个查询:
SELECT *
FROM `test` t
LEFT JOIN `result` r ON r.test_id = t.id
LEFT JOIN `parameter` p ON p.test_id = t.id
返回:
id name id test_id description id test_id name
1 test w/o parameters 1 1 the first result NULL NULL NULL
1 test w/o parameters 2 1 the second result NULL NULL NULL
2 test w/ paramters NULL NULL NULL 1 2 command_line
2 test w/ paramters NULL NULL NULL 2 2 userid
我想要返回的是:
id name results parameters
1 test w/o parameters the first result,the second result NULL
2 test w/ paramters NULL command_line,userid
我试图让 GROUP_CONCAT 工作,但 NULLS 被丢弃。有没有办法说服 GROUP_CONCAT 返回空值?
我真正想要的是这样的东西,但这都是错误的:
SELECT * , group_concat(r.description), group_concat(p.name)
FROM `test` t
left join `result` r on r.test_id = t.id
left join `parameter` p on p.test_id = t.id
这将返回非 NULL 行:
SELECT * , group_concat(r.description)
FROM `test` t
LEFT JOIN `result` r on r.test_id = t.id
LEFT JOIN `parameter` p on p.test_id = t.id