mysql - 如何进行 SQL 查询以从两个单独的表中获取两次连接的用户数据?

标签 mysql sql select

我有一个评论列表。对于每条评论,都可能有子评论(有点像 Stack Overflow 中对答案的评论)。

我不确定该怎么做,是在一个查询中查询所有这些。到目前为止我有这个:

select 
  problem_id , suggester_id , solution , suggested_solution_id , 
  DAYOFMONTH(solution_date) , DAYNAME(solution_date) , YEAR(solution_date) , 
  MONTH(solution_date) , first_name , last_name , email , 
  small_thumb , mid_thumb , solution_name , suggested_solution_comment.comment 
from suggested_solutions 
left join users 
  on suggested_solutions.suggester_id = users.user_id 
left join member_photo 
  on suggested_solutions.suggester_id = member_photo.member_id 
left join suggested_solution_discussion 
  on suggested_solutions.suggested_solution_id = suggested_solution_discussion.suggested_solution_id 
left join users 
  on suggested_solution_discussion.commenter_id = users.user_id 
left join member_photo 
  on suggested_solution_discussion.suggester_id = member_photo.member_id 
where problem_id = id;

suggested_solution_discussion是评论的子评论。所以我最终将 suggested_solution 表与 users 表连接起来,为了显示谁发表了子评论,我最终不得不将 suggested_solution_discussion 表与 users 表连接起来。

我得到这个错误:

ERROR 1066 (42000): Not unique table/alias: 'users'

进行此查询的正确方法是什么?

最佳答案

你已经加入了两次users表,需要给每一次都提供一个别名,以便于区分

...
left join users as users_1 on suggested_solutions.suggester_id = users_1.user_id  
...
left join users as users_2 on suggested_solution_discussion.commenter_id = users_2.user_id  
...

关于mysql - 如何进行 SQL 查询以从两个单独的表中获取两次连接的用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914269/

相关文章:

php - Yii 无法保存数据 - 未知方法 save()

mysql - 如何连接到在虚拟机上运行的 MySQL 服务器

php - MySql中的上一条记录

jQuery 选择文本并在段落中添加跨度

mysql - 复杂的子查询 - 这可能吗?

java - Spring + Hibernate加载大量记录

mysql - 如何解决 SELECT 列表不在 GROUP BY 子句中且包含非聚合?

sql - 使用日期选择交易

php - sql查询order by似乎不起作用

sql - psql 在结果数组中返回 'anonymous'