Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-返回select查询结果中的表名_Mysql_Select - Fatal编程技术网

Mysql-返回select查询结果中的表名

Mysql-返回select查询结果中的表名,mysql,select,Mysql,Select,我有一个数据库,其中存储了大量信息,包括用户名、密码和不同类型用户(管理员、客户等)的其他详细信息,当然是在不同的表中 我想使用用户名搜索数据库,并返回用户名所属表的名称。这将告诉我他们是什么类型的用户。 大概是这样的: 从表1、表2、表3中选择表名 其中username=thisValue 我对mysql没有太多的经验,所以我甚至不知道从哪里开始。你说的当然是在单独的表中,但实际上最好是有一个单用户表,其中有一个角色列记录用户的角色: CREATE TABLE users ( id I

我有一个数据库,其中存储了大量信息,包括用户名、密码和不同类型用户(管理员、客户等)的其他详细信息,当然是在不同的表中

我想使用用户名搜索数据库,并返回用户名所属表的名称。这将告诉我他们是什么类型的用户。 大概是这样的:

从表1、表2、表3中选择表名 其中username=thisValue


我对mysql没有太多的经验,所以我甚至不知道从哪里开始。

你说的
当然是在单独的表中,但实际上最好是有一个单用户表,其中有一个
角色
列记录用户的角色:

CREATE TABLE users (
    id INT NOT NULL PRIMARY KEY,
    role_id INT NOT NULL,
    FOREIGN KEY (role_id) REFERENCES roles (id)
)
以及
角色
表:

CREATE TABLE roles (
    id INT NOT NULL PRIMARY KEY,
    desc VARCHAR(100) NOT NULL,
    ...
)
有了这个设计,就可以很容易地找到所有用户,例如管理员:

SELECT u.*
FROM users u
INNER JOIN roles r
    ON u.role_id = r.id
WHERE
    r.desc = 'admin';

这个答案假设给定的用户总是只有一个角色。要考虑多个角色,我们可以在
用户
角色
表之间使用连接表。

首先重新设计表结构。有一个包含用户信息的表,并包含一个类似“用户类型”的列。(更好的是,一个用户类型的查找表,并且该表有一个外键。)正如您所发现的,您现在的结构很难查询和维护。我添加了一个数据库布局的屏幕截图以供参考。问题是每个不同的用户以不同的方式与数据库相关,并且具有不同的属性。数据库中包含的表格包括:管理员、客户、节日组织者、节日、预订、门票、表演者和表演者。每个用户共享的唯一属性是用户名和密码。我添加了一个数据库布局的屏幕截图,以供参考。这个新信息不会真正改变我的答案。