我有疑问:
select products.* from products
join companies on companies.id = products.company_id
where id = 1;
查询生成错误"列' id'在where子句中含糊不清"。我知道该列不明确,但我想告诉mysql只查看select" products中的列。"。所以,如果我有"产品。"如果我有"公司,那么产品的ID将在where子句中进行检查。"公司的ID将在where子句中进行检查,如果我有"产品。,公司。*"只有那时id才会含糊不清。
这只是一个简单的例子,查询更复杂并且由ORM生成。我知道我可以使用
select products.id as products_id from products
然后使用
where products_id = 1
或者我可以使用
where products.id = 1;
但这不符合我的需要,因为查询是由orm生成的。有什么想法吗?
答案 0 :(得分:0)
您可以在编写时指定要使用哪个表ID:
WHERE products.id = 1
使用eloquent时,你可以使用DB :: raw:
DB::table('products')
->select(DB::raw('products.*'))
->join('companies', DB::raw('companies.id'), '=', DB::raw('products.company_id'))
->where(DB::raw('products.id'), '=', 1)
->get()
;
答案 1 :(得分:-2)
select products.* from products
join companies on companies.id = products.company_id
where products.id = 1;