我有两张桌子。一个包含“包”的表。和包含条件数据的数据透视表。
packages表有一个名为'visible‘的条件列。“可见”列中整数值的含义是:0=根本不显示此包1=向所有人显示此包。2=按照透视表中的设置显示指定公司的程序包,或隐藏指定公司的程序包。
当它为2时。您只能隐藏包或显示指定公司的包,而不能同时隐藏和显示。
数据透视表有一个绑定到包、公司和一个名为“show”的条件布尔列。
“show”列中布尔值的含义为:
TRUE =为指定公司显示此包;FALSE =为指定公司隐藏此包
现在我想做一个查询,我可以一次获取指定公司的所有这些包。我试过了,但找不到解决方案。
发布于 2019-06-28 22:17:31
你应该提供你的表模式和一个例子,这样我可以更准确地回答,也许查询应该是这样的:
Package::where('visible', '=', '1')
->union
(
Package::join("name_of_your_pivot",'packages.id', '=','name_of_your_pivot.package_id')
->where([
['name_of_your_pivot.show', '=', TRUE ],
['name_of_your_pivot.company', '=', 'name_of_company'],
['packages.visible', '=', 2],
])
)->get();https://stackoverflow.com/questions/56807638
复制相似问题