mySQL使用表中的行来快速查找第二个表中的多行

时间:2015-09-22 16:43:03

标签: php mysql

使用第一个表中的行从第二个表中获取数据的最佳方法是什么。

想象一个网站,其中数据库中的表定义了各个页面。这些页面随后由多个组件构成。组件存在于另一个表中。对于页面来选择它需要哪些组件,它有一个列包含其后的组件的ID号。(14,15,17,19

然后在使用IN(14,15,17,19)等的mySQL查询中使用它。

有没有比这更好的方法?

1 个答案:

答案 0 :(得分:1)

如果关系是1:N(每个组件只能属于一个页面,但页面有多个组件),我建议将page_id存储在组件表中。然后你可以在这两个表之间进行简单的连接,你就会得到预期的结果。

如果关系是N:N,我建议创建一个具有component_id和page_id的中间表“PagesComponents”。然后,如果yopu将PagesComponents与Components一起加入Pages页面,您将得到预期的结果。

如果无法修改数据库,那么我猜IN(...)可能是最好的选择。