首页 > 解决方案 > MySQL - 在同一个选择查询中从表中检索不同的数据

问题描述

多年来我一直在使用 Stack Overflow,但这是我第一次找不到答案。

我正在尝试使用 4 个表在 MySQL 中构建查询

名称用户管理员操作

动作表有actions_idadmin_iduser_idaction

用户表有user_idname_id

admin表有admin_idname_id

name表有name_idfirst_name_last_name

我想做的是显示操作的内容,将user_idadmin_id替换为通过adminuser链接name_idfirst_namelast_name

标签: mysql

解决方案


您必须使用 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

推荐阅读