我有四种模式:Item
,Car
,ItemLocation
和Branch
。
Item
通过数据库中的Car
和ItemLocation
字段提供person_id
和item_location_id
。
Car
的{{1}}链接到branch_id
,而Branch
也有ItemLocation
。
我想要做的是选择branch_id
的{{1}}分支不等于Item
分支的所有Cars
。
我试过这句话,虽然我知道它不会起作用:
ItemLocation
我知道querying on relationships,但不明白如何在这样的关系中做到这一点。
有什么想法吗?
答案 0 :(得分:1)
查询关系对您没有帮助,因为您想要比较来自不同表的值。你需要加入:
ToolStripItemCollection menu = tsmi1.DropDownItems;
for(int i = 0; i < menu.Count; i++) {
if(item.Category.Equals(menu[i].Text)) {
menu[i]. //need to add new menu item here....
}
}
这将获取同时包含$items = Item::select('items.*')
->join('item_locations as il', 'il.id', '=', 'items.item_location_id')
->join('cars', function ($j) {
$j->on('cars.person_id', '=', 'items.id')
->on('cars.branch_id', '<>', 'il.branch_id');
})
->get()
和items
的所有cars
并符合您的条件。如果您还要包含不具有任何关系的内容,请改用item_location
和leftJoins
PS。很难读懂你的问题。而不是描述这些关系,更好地简单地显示具有相关字段的表。