[英]Get result from 3 table with 2 column matching mysql
我有3张桌子,像这样。
Table1.
group_id admin
................
1 x
2 y
3 z
Table2
group_id user
....................
1 a
1 b
2 d
Table3
user status
......................
x hi
y hello
z oh
a oho
b sss
d oops
现在您可以看到在上面的表中我们具有group id
但是在第一个表中我具有组admin,第二个表中包含组成员..以下是我们想要的结果,其中group admin
和group members
我们想从一个劲儿组。
group_id user status
....................................
1 x hi
1 a oho
1 b sss
所以,,,,帮助我们得到类似上面的结果..在mysql
如果您以数据集的角度来考虑数据...
您在表1和2中的数据在列中匹配,但是您需要一起使用。 因此,使用UNION语句可以合并两个表,对结果集进行别名,然后将其连接到第三个表中以获得所需的结果。
这将生成派生表,也称为内联视图(别名为t2)
SELECT T2.Group_ID, T2.user, T3.Status
FROM (SELECT group_ID, Admin as user
FROM table1
UNION ALL
SELECT group_ID, user
FROM table2
) t2
INNER JOIN table3 t3
on t3.group_Id = T2.GroupID
尝试这个?
SELECT table1.group_id, table3.user, table3.status
FROM Table1, table2
LEFT JOIN table3 ON (table1.admin = table3.user OR table2.user = table3.user)
WHERE table1.group_id = table2.group_id AND table1.group_id = 1
GROUP BY table3.user
我假设每个组都有一个管理员,每个用户都有一个表3中的条目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.