查看时将三个表合并为一个

时间:2011-09-29 00:12:45

标签: mysql sql join

我有三张表,如图所示,我想在最后一张表中看到它。我无法弄清楚如何解决它 - 现在我正在使用三个嵌套调用来显示它。

首先,我遍历Customer以显示所有这些内容。在这个循环中,我有一个遍历OrderCustom的循环,我在里面检查是否有CustomerOrderCustom,右Customer_idOrderCustom_id

我不仅使用了大量查询,而且视图显示了OrderCustom正在使用的Customer项,在本例中为邮政编码。我正在使用MySQL 5.

schema http://i52.tinypic.com/2cyi17b.png

1 个答案:

答案 0 :(得分:2)

这是一个实体属性值数据库设计。它在设计上不是关系型的,除了最琐碎的例子之外,你不能用关系操作(例如JOIN)来操纵它。

如果您决定将这种非关系数据存储在关系数据库中,那么您将依赖于您自己的代码或某些基于EAV的对象序列化和反序列化库,无论您使用何种编程语言。 SQL对你没什么用。

如果你真的需要为这个项目使用这样的模型(也就是说,你不能采用关系模型)那么,如果在开发过程中还不太晚,我会建议放弃SQL并阅读XML,XPath和XSLT可能更适合存储和恢复每个条目可以具有不同结构的数据。

加分文章: "Why Entity-Attribute-Value is bad"