嗨,我需要为下面的场景构建一个mysql查询
我有像tbl\u project,tbl\u object1,tbl\u object2,tbl\u object3,tbl\u object4,tbl\u item这样的表。在这里,我有50个在tblèu项目的条目。
因为每个条目都有唯一的列对象id,其值为1、2、3或4。如果object\u id为1,则该项目的对象详细信息将在tbl\u object1中,同样,如果object\u id为2,则该项目的详细信息将在tbl\u object2中,依此类推。
在各自的对象表(tbl\u object1、tbl\u object2、tbl\u object3、tbl\u object4)中,我有唯一的列item\u id。对于唯一的item\u id,我们必须获取item\u name、item\u details。
因此,对于所有我的50个条目,其各自的对象数据来自基于对象标识的任何对象表(tbl_object1、tbl_object2、tbl_object3、tbl_object4),然后来自基于各自对象表(tbl_object1或tbl_object2或tbl_object3或tbl_object4)的各自项目标识的tbl_item。
你能帮帮我吗
1条答案
按热度按时间jei2mxaa1#
您的第一项工作应该是修复数据模型。将数据分散到多个表上会使事情变得不必要、复杂和低效——正如您开始看到的那样。这四个
tbl_object*
应该在一个表中规范化表。也就是说:你可以用多个
left join
学生:如果要消除在相应对象表中不匹配的项目,可以添加以下内容
where
条款: