所以,我需要在两个表之间进行连接 - 项目和类别。
我在Laravel编码,这就是我所拥有的:
$items = DB::table('items')
->join('categories', 'categories.id', '=', 'items.category_id')
->get();
然后我得到了一些像这样的结果:
{
id: 3,
barcode: "0002",
category_id: "4",
price: 200,
in_use: 1,
serial_number: 1112,
model: "Toshiba",
condition_id: 3,
person_id: 1,
comments: "A monitor that is usually connected to a laptop.",
created_at: "2017-03-28 19:50:02",
updated_at: "2017-03-28 19:50:02",
name: "monitor",
},
{
id: 3,
barcode: "0003",
category_id: "4",
price: 300,
in_use: 1,
serial_number: 11342,
model: "Toshiba",
condition_id: 3,
person_id: 1,
comments: "A monitor that is usually connected to a laptop.",
created_at: "2017-03-28 19:50:02",
updated_at: "2017-03-28 19:50:02",
name: "monitor",
},
两个表都有一些具有相同名称的字段,例如id
created_at
和updated_at
。
问题是,因为它们具有相同的名称,所以一个表的值会覆盖另一个表的值。
当第二个表具有相同的列名时,如何使第二个表值不会覆盖第一个表中的值?
或者,更好的是,如何从两个表中获取两个值?
也许以某种方式使用AS
关键字?
感谢您的帮助。
答案 0 :(得分:1)
是的,您应该为每个重复字段使用AS
关键字
这是它的工作原理:
$items = DB::table('items')
->join('categories', 'categories.id', '=', 'items.category_id')
->select('field1', 'field2 as field2name', 'field3')
->get();
注意:对于具有相同名称的字段,请按以下方式使用:' table.field'