gpt4 book ai didi

MySQL Select 使用 IN 和 GROUP BY

转载 作者:行者123 更新时间:2023-11-29 01:54:43 24 4
gpt4 key购买 nike

我有两个表 messages 和 users 我想找出哪些用户收到了消息,但是查询只返回一条消息。

我的模式如下

消息

msg_id | msg_content | recipients |
-----------------------------------
1 | Hello world | 1,2,3,4,5
2 | Test | 1,3,5
3 | Welcome | 1,2,4

用户

uid    | fname   | lname  |
---------------------------
1 | John |Doe |
2 | Jane |Doe |
3 | Mark |Someone |
4 | Mary |lady |
5 | Anthony |Doe |

所以我很乐意将我的结果简单地看成

msg_id | msg_content | recipients |
-----------------------------------
1 | Hello world | John,Jane,Mark,Mary,Anthony
2 | Test | John,Mark,Anthony
3 | Welcome | John,Jane,Mary

所以我是这样查询的

SELECT msg_id,msg_content,fname AS recepients FROM messages a
LEFT JOIN users ON uid IN(a.recipients)

当我运行该查询时,我只得到一个收件人。请指教。谢谢。

最佳答案

我认为您必须使用替代方法来创建表

消息

msg_id | msg_content | 
----------------------
1 | Hello world |
2 | Test |
3 | Welcome |

用户

 uid    | fname   | lname  |
---------------------------
1 | John |Doe |
2 | Jane |Doe |
3 | Mark |Someone |
4 | Mary |lady |
5 | Anthony |Doe |

users_has_messages

uhm_id | uid | msg_id  |
---------------------------
1 | 1 | 1 |
2 | 2 | 1 |
3 | 3 | 1 |
4 | 2 | 2 |
5 | 1 | 3 |

然后你就可以使用你的代码了

关于MySQL Select 使用 IN 和 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322801/

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