[英]Mysql one row from reference table then mutiple rows in joined table
是否有可能在 MySQL join 語句中產生類似的結果?
ID | Name | profile_ID | Detail_ID | Details
1 | John | 1 | uuidj1 | detail1
null| null | 1 | uuidj2 | detail2
null| null | 1 | uuidj3 | detail3
2 | Doe | 2 | uuidd1 | detail1
null| null | 2 | uuidd2 | detail2
3 | Foo | 3 | uuidf1 | detail1
4 | bar | 4 | uuidf2 | detail1
我已經使用此 sql 語句為每個詳細信息生成了逐行數據。
SELECT a.ID, a.Name, a.ID as profile_ID, b.Detail_ID, b.Details
FROM profile as a
LEFT JOIN details as b on b.profile_id = a.id
SELECT CASE WHEN a.ID = LAG(a.id) OVER (ORDER BY a.ID, b.Detail_ID)
THEN NULL
ELSE a.id
END AS ID,
CASE WHEN a.ID = LAG(a.id) OVER (ORDER BY a.ID, b.Detail_ID)
THEN NULL
ELSE a.Name
END AS Name,
a.id profile_ID,
b.Detail_ID,
b.Details
FROM profile as a
LEFT JOIN details as b on b.profile_id = a.id
ORDER BY a.ID, b.Detail_ID
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=ceaa25a8b979f730c7ee0125988bb30a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.