SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确
Posted
技术标签:
【中文标题】SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 \'tenant_id\' 不明确【英文标题】:SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'tenant_id' in where clause is ambiguousSQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确 【发布时间】:2021-10-11 23:07:03 【问题描述】:我正在尝试获取与 vendor_id 匹配的产品列表。表 Products 和 Vendors 具有多对多关系,因此我创建了一个包含 vendor_id 和 product_id 字段的数据透视表。
下面的 Eloquent 查询:
Product::with('brand','tax')
->has('vendors')
->where('vendor_id',$vendor_id)
->get();
虽然在查询中不可见,但我有一个特性 BelongsToTenant,它会自动将 ->where(tenant,tenant_id) 附加到每个模型,并且两个表都有字段tenant_id。我认为我收到此错误是因为模型(产品和供应商)中都存在此特征。我卡住了
【问题讨论】:
【参考方案1】:Where 子句不明确,因为products
表和组表vendors
具有vendor_id
列。如果您的查询中有多个相同的列,请提及表名:
Product::with('brand','tax')
->has('vendors')
->where('products.vendor_id',$vendor_id)
->get();
【讨论】:
以上是关于SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确的主要内容,如果未能解决你的问题,请参考以下文章
laravel 8 播种,SQLSTATE[23000]:违反完整性约束:
SQLSTATE[23000]:违反完整性约束:在 Laravel 5.2 中
SQLSTATE [23000]:违反完整性约束:1052 where 子句中的列 'tenant_id' 不明确
Laravel JOIN SQLSTATE [23000] 问题:违反完整性约束:字段列表中的 1052 列“album_id”不明确