mysql - MySQL - 在同一个选择查询中从表中检索不同的数据
问题描述
多年来我一直在使用 Stack Overflow,但这是我第一次找不到答案。
我正在尝试使用 4 个表在 MySQL 中构建查询
名称、用户、管理员、操作
动作表有actions_id、admin_id、user_id和action列
用户表有user_id和name_id列
admin表有admin_id和name_id列
name表有name_id、 first_name和_last_name列
我想做的是显示操作的内容,将user_id和admin_id替换为通过admin和user链接name_id的first_name和last_name
解决方案
您必须使用 join
将所有表关联在一起
select t1.action,n.first_name as user_FirstName,n.last_name as user_LastName,
n1.first_name as adminFirstname,n1.last_name as AdminLastName from
(
select a.action,ad.name_id as adnameid,u.name_id as unameid from actions a inner join user u on a.user_id=u.user_id
inner join admin ad on a.admin_id =ad.admin_id
) as t1 inner join name n on t1.unameid =n.name_id
inner join name n1 on t1.adnameid=n1.name_id
推荐阅读
- typescript - typescript 类似于返回类型的扩展 - 如何?
- django - Django rest 框架添加额外的上下文作为响应
- clojure - Clojure 语言异常
- elasticsearch - 无法通过应用特定字段的过滤器获得类似结果
- python - 熊猫读取 csv 使用定界符固定时间
- mongodb - MongoDB查询今天和明天的事件
- reactjs - How to return text + icon from a function in React
- html - 计算创建具有给定对角线长度的菱形所需的正方形的边和斜度
- php - PHP $_POST 带有数组和 [ ] 键
- java - 我们可以在spring mvc中更改springBeanConfiguration文件的位置吗?