mysql – 在第二个基础上连接基于多个列的表
作者:互联网
我有两个表Place和Post,我需要生成一个输出
place
--------------
std_id sch_id
1 1
2 2
3 1
4 3
5 4
6 2
7 5
8 3
9 5
10 4
和
Post
------------
sch1_id sch2_id sch3_id sup_id
1 2 3 1
3 2 4 2
我需要生成以下输出
sup_id sch_id std_id
1 1 1
1 1 3
1 2 2
1 2 6
1 3 4
1 3 8
2 3 4
2 3 8
2 2 2
2 2 6
2 4 5
2 4 10
我试过这个
SELECT pl.std_id,po.sup_id FROM `place` pl,`post` po WHERE pl.sch_id =
po.sch1_id group by po.sup_id
得到了这个
| std_id | sup_id |
|--------|--------|
| 1 | 1 |
| 4 | 2 |
编辑
解决方法:
只需使用IN()
:
SELECT pl.std_id,pl.sch_id,po.sup_id
FROM `place` pl
INNER JOIN `post` po
ON(pl.sch_id IN(po.sch1_id,po.sch2_id,po.sch3_id))
尽管非常推荐,但无需规范化您的数据!你应该重新考虑你的表结构.
标签:mysql,join,multiple-columns 来源: https://codeday.me/bug/20190724/1524968.html