如何从tableB中选择tableB_name并在mysql中加入tableA?

时间:2018-06-19 03:23:11

标签: mysql sql select

我这里有2张桌子: -

Table A
tableA_id
tableB_id1
tableB_id2
tableB_id3

Table B
tableB_id
tableB_name

如何将这两个表连接成一个单个结果并返回结果,如: -

tableA_id  tableB_id1 tableB_name1 tableB_id2 tableB_name2 tableB_id3 tableB_name3

** 1,2,3中的tableB_name将基于tableB_id1,2,3中的值 谢谢。

1 个答案:

答案 0 :(得分:0)

根据您当前的结构,您需要与tableb一起加入tablea 3次

select a.tableA_id,
    b1.tableB_id tableB_id1,
    b1.tableB_name tableB_name1,
    b2.tableB_id tableB_id2,
    b2.tableB_name tableB_name2,
    b3.tableB_id tableB_id3,
    b3.tableB_name tableB_name3
from tablea a
join tableb b1 on a.tableB_id1 = b1.tableB_id
join tableb b2 on a.tableB_id2 = b2.tableB_id
join tableb b3 on a.tableB_id3 = b3.tableB_id

您当前的架构仅限于对tableb的3个引用,如果您需要另一个,则该怎么办。如果这两个表之间存在many to many关系,我建议您重新构建表格并添加junction table来关联这些表格

tableab_pivot

tablea_id tableb_id
1           6
1           7
1           8