所以我拥有的是这样的:
MAIN_TABLE
id | in_table | in_tables_id | points
1 | t1 | 1 | 1
2 | t2 | 1 | 4
3 | t2 | 2 | 3
4 | t1 | 2 | 2
然后是表格
table1 - 在我的main_table中标记为t1
id | content_id
1 | 1
2 | 2
table2 - 在我的main_table中标记为t2
id | content_id
1 | 1
2 | 2
含量
id | category_id | content
1 | 1 | aaa
2 | 2 | bbb
类别
id | name
1 | first
2 | seccond
3 | third
所以我的第一个表“main_table”有来自“table1”和“table2”的条目ID,用户得到了它们的分数,这些条目通过content_id = id从“content”表连接到“content”;并且“内容”表中的内容总是在某些类别中来自“类别”表。
我想要的是从“类别”表中的类别中总结“main_table”中的所有点。
对我来说,主要的问题是以某种方式“连接”来自“main_table”的标识符,如t1,t2和表“table1”,“table2”,有没有办法做到这一点?
答案 0 :(得分:0)
我建议重组您的数据库。查看普通表格并将表格转换为普通表格,例如:不要使用单独的表,而是将“表名”存储在一列中,这样就可以轻松实现连接。
对于当前的表格布局,请使用以下连接条件:
select *
from main_table mt
inner join table1 t1
on mt.in_table = 't1'
and mt.in_tables_id = t1.id
inner join table2 t2
on mt.in_table = 't2'
and mt.in_tables_id = t2.id
/* repeat for number of tables */