gpt4 book ai didi

mysql - 根据另一个表中的发件人、收件人 ID 从用户表中选择数据

转载 作者:行者123 更新时间:2023-11-30 21:29:38 27 4
gpt4 key购买 nike

我无法正确格式化此 SQL 查询。我想要做的是从事件表中选择数据,并将来自两个用户 ID 的数据存储在该事件表中。我当前的声明如下所示:

SELECT activity.id, activity.sender, activity.recipient, activity.amount, activity.description, activity.create_date, users.first_name, users.last_name, users.username, users.profile_photo FROM `activity` INNER JOIN `users` ON users.id = activity.sender ORDER BY activity.create_date DESC

现在这会获取 activity.sender 用户的数据,但我希望扩展我的查询以包括 activity.recipient 用户。我玩过不同的东西,例如“GROUP BY activity.recipient、activity.sender”和 GROUP_CONCAT(users.first_name、users.last_name 等),但没有成功。

更新查询:

SELECT activity.id, activity.sender, activity.recipient, activity.amount, activity.description, activity.create_date, users.first_name, users.last_name, users.username, users.profile_photo, recipient.first_name, recipient.last_name, recipient.username FROM `activity` INNER JOIN `users` ON users.id = activity.sender INNER JOIN 'users' AS recipient ON activity.recipient = recipient.id ORDER BY activity.create_date DESC

仍然出现 SQL 语法错误:'你的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在\'\'users\' 附近使用的正确语法 AS recipient ON activity.recipient = recipient.id ORDER BY activity.crea\' at line 1'

最佳答案

不太确定你在问什么,但我会试一试。

我认为您需要在查询中两次包含 User 表,一次查找发件人,第二次查找收件人。如果是这样,查询看起来像这样

SELECT activity.*, users.*, receiver_user.first_name, receiver_user.last_nameFROM `activity`  INNER JOIN `users`         ON users.id = activity.sender       inner join 'users' as 'receiver_user'        ON activity.recipient = users.idORDER BY activity.create_date DESC

请注意,我为您的用户表使用了一个别名,即“inner join 'users' as 'receiver_user'。另请注意,我知道很多 SQL 但不了解 mySql,因此引用可能有误。

关于mysql - 根据另一个表中的发件人、收件人 ID 从用户表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918839/

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