簡體   English   中英

Mysql 參考表中的一行,然后連接表中的多行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM