gpt4 book ai didi

mySQL 如何将多个 JOIN 结果作为唯一列返回?

转载 作者:行者123 更新时间:2023-11-29 19:41:02 24 4
gpt4 key购买 nike

我正在根据 user_id 以及特定日期和操作从多个表查询结果,但我还有一个名为 user_notes 的单独表:

用户注释

| id |       user_id |                         note |          date |
------------------------------------------------------------------------
| 1 | 10 | First note. | 2016-01-01 |
| 2 | 10 | Second note. | 2016-01-02 |
| 3 | 11 | First note. | 2016-01-03 |
| 4 | 11 | Second note. | 2016-01-04 |
| 5 | 11 | Third note. | 2016-01-05 |

我想知道当我与其他表连接时,如何将所有这些注释及其日期作为每个记录/结果中的单独列返回,对于每个 user_id 只返回一行,最终结果看起来像这样的东西:

最终结果

| user_id |  other_data |       note1 |      date1 |        note2 |      date2 |       note3 |      date3 |...
---------------------------------------------------------------------------------------------------------
| 10 | .......... | First note. | 2016-01-01 | Second note. | 2016-01-02 | | | ...
| 11 | .......... | First note. | 2016-01-03 | Second note. | 2016-01-04 | Third note. | 2016-01-05 | ...

依此类推...最多有 10 个注释,因此每个“注释”和“日期”条目最多可以有 10 个额外列。

知道如何实现这一点(如果有的话)吗?

最佳答案

这可以通过这个技巧来完成:

select main.user_id, 
first_note.note as note1, first_note.date,
second_note.note as note2, second_note.date,
...
from user_notes as main
inner join (select * from user_notes where user_id = main.user_id limit 0,1 ) as first_note on main.user_id = first_note.user_id
inner join (select * from user_notes where user_id = main.user_id limit 1,1 ) as second_note on main.user_id = second_note.user_id
...

关于mySQL 如何将多个 JOIN 结果作为唯一列返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com