建議解法:
select
a.*,
subject subject_original,
substring_index(subject, ',', 1) subject_1,
if(substring_index(subject, ',', -1) = substring_index(subject, ',', 1),
null, substring_index(subject, ',', -1)) subject_2
from 表A a
inner join
(
select id, group_concat(subject) subject
from 表B
group by id
) b
on a.id = b.id
;
如果你的表B,不確定重複 ID 會有幾個,我會不建議用這方式處理。
報表可以用別的方式呈現,例如呈現出 subject_original 就好。
※ 引述《titiru (WHITEROSE)》之銘言:
: 資料庫名稱:MYSQL
: 資料庫版本:8.0
: 內容/問題描述:
: 您好 我有兩張表
: 表A
: id sname
: 1 AAA
: 2 BBB
: 3 CCC
: 表B
: id subject
: 1 c++
: 1 python
: 2 R
: 3 ASM
: sql 語法: select 表A.id 表A.sname 表B.subject from 表A A
: left join 表B B on A.id=B.id
: 結果:
: id sname subject
: 1 AAA c++
: 1 AAA python
: 2 BBB R
: 3 CCC ASM
: 想要的輸出結果
: id name subject1 subject2
: 1 AAA C+++ python