我有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
但在第一个表格中我有组管理员,第二个表格包含组成员。
以下是我们想要这样的结果,其中group admin
以及group members
我们想要来自一个信号组。
group_id user status
....................................
1 x hi
1 a oho
1 b sss
所以,,,帮助我们在mysql
答案 0 :(得分:0)
如果您根据数据集考虑数据......
表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
答案 1 :(得分:0)
试试这个?
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中的条目。