如果mysql的名称在另一个表中,则mysql从一个表中选择

时间:2011-08-08 07:20:49

标签: mysql database-design

所以我拥有的是这样的:

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”,有没有办法做到这一点?

1 个答案:

答案 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 */