【发布时间】:2019-02-07 11:35:32
【问题描述】:
我按角色分隔我的用户,因此基本 users 表中的信息很少,其余的则在存储角色特定信息的单独表中。
所以我想在 SQL 中执行 SELECT 语句,但我选择的表必须是子查询的值。
SELECT * FROM (subquery);
在这种情况下,子查询是用户表中用户角色的值,所以我知道在哪里查找其余信息。
SELECT role FROM users WHERE email = 'jhondoe@example.com';
大家一起:
SELECT * FROM (SELECT role FROM users WHERE email = 'jhondoe@example.com');
(理论上)这将转化为:
SELECT * FROM students;
SELECT * FROM parents;
SELECT * FROM teachers;
取决于电子邮件;
【问题讨论】:
-
我认为您需要另一个子查询来将所有用户分组到一个表中。
-
不知道为什么它必须是子查询的值而不是连接的值。但是要让问题中的 sql 正常工作,您需要为子查询设置别名 - 例如将
as students放在右括号之后的末尾。但是显示您的架构和示例数据以及预期结果以获得正确的解决方案 -
您需要使用动态 SQL。这通常表明数据模型可以改进。