繁体   English   中英

从具有2列匹配mysql的3个表中获取结果

[英]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 admingroup 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM