【发布时间】:2025-12-15 19:45:01
【问题描述】:
我的架构是
CREATE TABLE IF NOT EXISTS `account` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(120) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `reseller_did` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`phone` int(11) NOT NULL,
`superadmin_id` int(11) NOT NULL DEFAULT '0',
`reseller_id` int(11) NOT NULL DEFAULT '0',
`admin_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
FOREIGN KEY (`superadmin_id`) REFERENCES account(`id`),
FOREIGN KEY (`reseller_id`) REFERENCES account(`id`),
FOREIGN KEY (`admin_id`) REFERENCES account(`id`)
)
我想找到带有超级管理员、经销商、管理员名称的手机。问题是我不能在同一个 ID 上多次加入。我试过的查询
select phone,superadmin_id,reseller_id, admin_id, name from reseller_did join
account on account.id=reseller_did.admin_id
上面的查询通过加入 admin_id 来显示管理员名称,但是如何获取同一部手机的超级管理员名称和经销商名称?
编辑:示例输入
帐户表
id name
3 SuperAdmin1
9 Reseller1
10 Admin1
reseller_did
id phone superadmin_id reseller_id admin_id
1 9090909090 3 9 10
样本输出
phone superadmin reseller admin
9090909090 SuperAdmin1 Reseller1 Admin1
【问题讨论】:
-
请在此基础上发布一些示例输入和您的预期输出。
-
@1000111 我的错误,更新问题
标签: mysql join foreign-keys primary-key multiple-join-rows